X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=iotjava%2Fiotruntime%2Fmaster%2FIoTMaster.java;h=454ca306e2cfd6aa4ea03f886a23cc2a1525b81b;hb=aaa765a192fdcd2aaa05fb6b276424652578d0e8;hp=2d5b44f799ff6e01856df452d81fc59e37acf2a2;hpb=7cab636b00bf5afcc441c9e4bdd4d6f4f0e2cf95;p=iot2.git diff --git a/iotjava/iotruntime/master/IoTMaster.java b/iotjava/iotruntime/master/IoTMaster.java index 2d5b44f..454ca30 100644 --- a/iotjava/iotruntime/master/IoTMaster.java +++ b/iotjava/iotruntime/master/IoTMaster.java @@ -127,6 +127,7 @@ public final class IoTMaster { private static final String STR_INT_STUB_CLS_CFG = "INTERFACE_STUB_CLASS"; private static final String STR_FILE_TRF_CFG = "ADDITIONAL_ZIP_FILE"; private static final String STR_LANGUAGE = "LANGUAGE"; + private static final String STR_ADD_MAC_POL = "ADDITIONAL_MAC_POLICY"; private static final String STR_YES = "Yes"; private static final String STR_NO = "No"; private static final String STR_JAVA = "Java"; @@ -645,6 +646,12 @@ public final class IoTMaster { processJailConfig.configureProcessJailDeviceDriverPolicies(strIoTSlaveObjectHostAdd, strObjName, strObjClassName, strFileName, strIoTMasterHostAdd, commHan.getComPort(strObjName), commHan.getRMIRegPort(strObjName), commHan.getRMIStubPort(strObjName)); + // Check for additional MAC policy + String strMACConfigPath = STR_IOT_CODE_PATH + strObjClassName + "/"; + String strCfgFile = strMACConfigPath + strObjClassName + STR_CFG_FILE_EXT; + String strAddMACPolicy = parseConfigFile(strCfgFile, STR_ADD_MAC_POL); + if (strAddMACPolicy != null && strAddMACPolicy.equals("Yes")) + processJailConfig.combineAdditionalMACPolicy(strMACConfigPath, strObjClassName, strIoTSlaveObjectHostAdd); processJailConfig.configureProcessJailContRMIPolicies(strObjControllerName, strIoTSlaveObjectHostAdd, commHan.getRMIRegPort(strObjName), commHan.getRMIStubPort(strObjName)); } @@ -1996,6 +2003,7 @@ public final class IoTMaster { strIoTMasterHostAdd = routerConfig.getIPFromMACAddress(STR_MASTER_MAC_ADD); // Assign a new list of PrintWriter objects routerConfig.renewPrintWriter(); + HashSet setAddresses = null; // Loop as we can still find controller/device classes for(int i=0; i setAddresses = new HashSet(commHan.getHosts()); + setAddresses = new HashSet(commHan.getHosts()); setAddresses.add(strIoTMasterHostAdd); createPolicyThreads(STR_ROUTER_ADD, setAddresses); @@ -2214,11 +2228,12 @@ public final class IoTMaster { commHan.printLists(); commHan.clearCommunicationHandler(); lbIoT.printHostInfo(); - if (STR_ACTIVATE_SANDBOXING.equals("Yes")) - createMACPolicyThreads(setAddresses); } // Close access to policy files and deploy policies routerConfig.close(); + processJailConfig.close(); + if (STR_ACTIVATE_SANDBOXING.equals("Yes")) + createMACPolicyThreads(setAddresses); } catch (IOException | InterruptedException |