} else { $idArr = explode(",", getInstanceIds("Device.DHCPv4.Server.Pool.1.StaticAddress.")); foreach ($idArr as $key => $value) { if (!strcasecmp(getStr("Device.DHCPv4.Server.Pool.1.StaticAddress.{$value}.Chaddr"), $macAddr)) { $exist = true; $existIndex = $value; break; } } if (!$exist) { /* * there are two scenarios: * 1. DHCP ==> ReservedIP, add entry, update host comments * 2. ReservedIP ==> ReservedIP, mac address changed, modify this static entry, update host comments meanwhile */ addTblObj("Device.DHCPv4.Server.Pool.1.StaticAddress."); $IDs = getInstanceIds("Device.DHCPv4.Server.Pool.1.StaticAddress."); $idArr = explode(",", $IDs); $instanceid = array_pop($idArr); setStr("Device.DHCPv4.Server.Pool.1.StaticAddress.{$instanceid}.X_CISCO_COM_DeviceName", $deviceInfo['hostName'], false); setStr("Device.DHCPv4.Server.Pool.1.StaticAddress.{$instanceid}.Chaddr", $deviceInfo['macAddress'], false); setStr("Device.DHCPv4.Server.Pool.1.StaticAddress.{$instanceid}.Yiaddr", $deviceInfo['reseverd_ipAddr'], false); if (setStr("Device.DHCPv4.Server.Pool.1.StaticAddress.{$instanceid}.X_CISCO_COM_Comment", $deviceInfo['Comments'], true)) { $result = "success"; } if (array_key_exists('addResvIP', $deviceInfo)) { //this post is from add device page, only set staticAddress table, do nothing any more } else { //this post is from edit device page, set Host talbe comments as well. $idArr = explode(",", getInstanceIds("Device.Hosts.Host.")); $macArr = array();
if ($flag['trustFlag'] == "true") { // "no" => "yes" //if device not in trusted user table, add this device to Trusted user table, set the trusted flag == true //if already exist, just set the trusted flag == true $IDs = getInstanceIds("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser."); $idArr = explode(",", $IDs); $deviceExist = false; foreach ($idArr as $key => $value) { if ($flag['IPAddress'] == getStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$value}.IPAddress")) { $deviceExist = true; setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$value}.Trusted", $flag['trustFlag'], true); break; } } if (!$deviceExist) { addTblObj("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser."); $IDs = getInstanceIds("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser."); $idArr = explode(",", $IDs); $instanceid = array_pop($idArr); setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$instanceid}.HostDescription", $flag['HostName'], false); setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$instanceid}.IPAddress", $flag['IPAddress'], false); if (strpbrk($flag['IPAddress'], ':') != FALSE) { setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$instanceid}.IPAddressType", "IPv6", false); } else { setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$instanceid}.IPAddressType", "IPv4", false); } setStr("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.{$instanceid}.Trusted", $flag['trustFlag'], true); } } else { // "yes" => "no" not trusted $IDs = getInstanceIds("Device.X_Comcast_com_ParentalControl.ManagedServices.TrustedUser.");
if ($name == $arrayName) { $result .= "Service name has been used!\n"; break; } else { if ($type == "BOTH" || $arrayType == "BOTH" || $type == $arrayType) { $porttest = PORTTEST($sport, $eport, $arraySPort, $arrayEPort); if ($porttest == 1) { $result .= "Conflict with other service. Please check port and IP!"; break; } } } } } if ($result == "") { addTblObj("Device.NAT.PortMapping."); $IDs = explode(",", getInstanceIDs("Device.NAT.PortMapping.")); $i = $IDs[count($IDs) - 1]; $rootObjName = "Device.NAT.PortMapping."; $paramArray = array(array("Device.NAT.PortMapping." . $i . ".Enable", "bool", "true"), array("Device.NAT.PortMapping." . $i . ".InternalClient", "string", $ip), array("Device.NAT.PortMapping." . $i . ".X_CISCO_COM_InternalClientV6", "string", $ip6), array("Device.NAT.PortMapping." . $i . ".InternalPort", "uint", "0"), array("Device.NAT.PortMapping." . $i . ".ExternalPort", "uint", $sport), array("Device.NAT.PortMapping." . $i . ".ExternalPortEndRange", "uint", $eport), array("Device.NAT.PortMapping." . $i . ".Protocol", "string", $type), array("Device.NAT.PortMapping." . $i . ".Description", "string", $name)); $retStatus = DmExtSetStrsWithRootObj($rootObjName, TRUE, $paramArray); if (!$retStatus) { $result = "Success!"; } } } } if (isset($_POST['edit'])) { $i = $_POST['ID']; $name = $_POST['name']; $type = $_POST['type'];
<?php $jsConfig = $_REQUEST['configInfo']; //$jsConfig = ' {"dest":"Edit", "idex":"1", "name":"tom", "pass":"******"}'; $arConfig = json_decode($jsConfig, true); //print_r($arConfig); $id = $arConfig['idex']; if ("Edit" == $arConfig['dest']) { setStr("Device.X_CISCO_COM_FileSharing.User.{$id}.UserName", $arConfig['name'], false); setStr("Device.X_CISCO_COM_FileSharing.User.{$id}.Password", $arConfig['pass'], true); } else { if ("Add" == $arConfig['dest']) { addTblObj("Device.X_CISCO_COM_FileSharing.User."); $ids = array_filter(explode(",", getInstanceIds("Device.X_CISCO_COM_FileSharing.User."))); $id = $ids[count($ids) - 1]; setStr("Device.X_CISCO_COM_FileSharing.User.{$id}.UserName", $arConfig['name'], false); setStr("Device.X_CISCO_COM_FileSharing.User.{$id}.Password", $arConfig['pass'], true); } else { if ("Delete" == $arConfig['dest']) { delTblObj("Device.X_CISCO_COM_FileSharing.User.{$id}."); } } } sleep(6); echo $jsConfig;
setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $instanceid . ".MACAddress", $devBlockInfo['macAddr'], false); setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $instanceid . ".AlwaysBlock", "true", true); } /* * if managed device is disabled, enable it */ $enableFlag = getStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Enable"); if (!strcasecmp($enableFlag, "false")) { setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Enable", "true", true); } setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.AllowAll", "true", true); } else { //this is going to set add XfinitySSID connected device to MAC filter list //wi-fi ssie 5 and 6 mapped to XfinitySSID setStr("Device.WiFi.AccessPoint.5.X_CISCO_COM_MACFilter.Enable", 'true', true); setStr("Device.WiFi.AccessPoint.5.X_CISCO_COM_MACFilter.FilterAsBlackList", 'true', true); addTblObj("Device.WiFi.AccessPoint.5.X_CISCO_COM_MacFilterTable."); $idArr = explode(",", getInstanceIds("Device.WiFi.AccessPoint.5.X_CISCO_COM_MacFilterTable.")); $id = array_pop($idArr); setStr("Device.WiFi.AccessPoint.5.X_CISCO_COM_MacFilterTable.{$id}.DeviceName", $devBlockInfo['hostName'], false); setStr("Device.WiFi.AccessPoint.5.X_CISCO_COM_MacFilterTable.{$id}.MACAddress", $devBlockInfo['macAddr'], true); setStr("Device.WiFi.AccessPoint.6.X_CISCO_COM_MACFilter.Enable", 'true', true); setStr("Device.WiFi.AccessPoint.6.X_CISCO_COM_MACFilter.FilterAsBlackList", 'true', true); addTblObj("Device.WiFi.AccessPoint.6.X_CISCO_COM_MacFilterTable."); $idArr = explode(",", getInstanceIds("Device.WiFi.AccessPoint.6.X_CISCO_COM_MacFilterTable.")); $id = array_pop($idArr); setStr("Device.WiFi.AccessPoint.6.X_CISCO_COM_MacFilterTable.{$id}.DeviceName", $devBlockInfo['hostName'], false); setStr("Device.WiFi.AccessPoint.6.X_CISCO_COM_MacFilterTable.{$id}.MACAddress", $devBlockInfo['macAddr'], true); //For WECB setStr("Device.MoCA.X_CISCO_COM_WiFi_Extender.X_CISCO_COM_SSID_Updated", "true", true); }
setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".AlwaysBlock", $block, true); header("Content-Type: application/json"); echo json_encode("Success!"); } else { $result = ""; foreach ($ids as $key => $j) { $deviceName = getStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device.{$j}.Description"); $accessType = getStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device.{$j}.Type"); $MACAddress = getStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device.{$j}.MACAddress"); if ($type == $accessType && !strcasecmp($mac, $MACAddress)) { $result .= "This device is already in {$type} list."; break; } } if ($result == "") { addTblObj("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device."); $IDs = explode(",", getInstanceIDs("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device.")); $i = $IDs[count($IDs) - 1]; setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".Type", $type, false); setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".Description", $name, false); setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".MACAddress", $mac, false); if ($block == "false") { setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".StartTime", $_POST['startTime'], false); setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".EndTime", $_POST['endTime'], false); setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".BlockDays", $_POST['days'], false); } setStr("Device.X_Comcast_com_ParentalControl.ManagedDevices.Device." . $i . ".AlwaysBlock", $block, true); $result = "Success!"; } header("Content-Type: application/json"); echo json_encode($result);
} echo "0"; } else { echo "1"; } } else { //this is to set blocked Keyword $keyword = $blockedSiteInfo['Keyword']; foreach ($idArr as $key => $value) { if ($keyword == getStr($objPrefix . $value . ".Site")) { $exist = true; break; } } if (!$exist) { addTblObj("Device.X_Comcast_com_ParentalControl.ManagedSites.BlockedSite."); $idArr = explode(",", getInstanceIds("Device.X_Comcast_com_ParentalControl.ManagedSites.BlockedSite.")); $index = array_pop($idArr); if ($blockedSiteInfo['alwaysBlock'] == 'true') { $paramArray = array(array($objPrefix . $index . ".Site", "string", $blockedSiteInfo['Keyword']), array($objPrefix . $index . ".AlwaysBlock", "bool", $blockedSiteInfo['alwaysBlock']), array($objPrefix . $index . ".BlockMethod", "string", "Keyword")); $retStatus = DmExtSetStrsWithRootObj($rootObjName, TRUE, $paramArray); if (!$retStatus) { $result = "Success!"; } else { $result = 'Failed to add'; } /*setStr($objPrefix.$index.".Site", $blockedSiteInfo['Keyword'], false); setStr($objPrefix.$index.".AlwaysBlock", $blockedSiteInfo['alwaysBlock'], false); setStr($objPrefix.$index.".BlockMethod", "Keyword", true);*/ } else { $paramArray = array(array($objPrefix . $index . ".Site", "string", $blockedSiteInfo['Keyword']), array($objPrefix . $index . ".AlwaysBlock", "bool", $blockedSiteInfo['alwaysBlock']), array($objPrefix . $index . ".BlockMethod", "string", "Keyword"), array($objPrefix . $index . ".StartTime", "string", $blockedSiteInfo['StartTime']), array($objPrefix . $index . ".EndTime", "string", $blockedSiteInfo['EndTime']), array($objPrefix . $index . ".BlockDays", "string", $blockedSiteInfo['blockedDays']));
$portMappingType = getStr("Device.NAT.PortMapping." . $j . ".Protocol"); $arraySPort = getStr("Device.NAT.PortMapping." . $j . ".ExternalPort"); $arrayEPort = getStr("Device.NAT.PortMapping." . $j . ".ExternalPortEndRange"); if ($type == "BOTH" || $portMappingType == "BOTH" || $type == $portMappingType) { $porttest = PORTTEST($tsp, $tep, $arraySPort, $arrayEPort); if ($porttest == 1) { $result .= "Conflict with other service. Please check port and IP!"; break; } } } } //end of foreach } if ($result == "") { addTblObj("Device.NAT.X_CISCO_COM_PortTriggers.Trigger."); $IDs = explode(",", getInstanceIDs("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.")); $i = $IDs[count($IDs) - 1]; // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".TriggerPortStart",$fsp,false);//from start port // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".TriggerPortEnd",$fep,false); // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".TriggerProtocol",$type,false); // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".ForwardProtocol",$type,false);//need to ask wu // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".ForwardPortStart",$tsp,false);//to start port // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".ForwardPortEnd",$tep,false); // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".Description",$name,false); // setStr("Device.NAT.X_CISCO_COM_PortTriggers.Trigger.".$i.".Enable","true",true); // $result="Success!"; $rootObjName = "Device.NAT.X_CISCO_COM_PortTriggers.Trigger."; $paramArray = array(array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".TriggerPortStart", "uint", $fsp), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".TriggerPortEnd", "uint", $fep), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".TriggerProtocol", "string", $type), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".ForwardProtocol", "string", $type), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".ForwardPortStart", "uint", $tsp), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".ForwardPortEnd", "uint", $tep), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".Description", "string", $name), array("Device.NAT.X_CISCO_COM_PortTriggers.Trigger." . $i . ".Enable", "bool", "true")); $retStatus = DmExtSetStrsWithRootObj($rootObjName, TRUE, $paramArray); if (!$retStatus) {
function DmAddObj($objTableName) { return addTblObj($objTableName); }