if ($node['nsenabled'] != 1) { echo "Nodeside Disabled for Node"; exit; } if ($node['nspushenabled'] != 1) { echo "Nodeside Push Disabled for Node"; exit; } if ($node['nspuship'] != "" && $node['nspuship'] != $remoteip) { echo "Remote IP Not Allowed for Push"; exit; } if ($node['nskey'] != "" && $node['nskey'] != $nodekey) { echo "Nodekey Failure"; exit; } // Got here so ok! $xmlobj = new TNodeXML(); $xmlobj->Parse($xml); if ($xmlobj->Error() != "") { echo "XML Error: " . $xmlobj->Error(); exit; } $eventdata = array("nodeid" => $nodeid); $NATS->EventHandler("nodeside_push", $eventdata); $NATS->Nodeside_Process($nodeid, $xmlobj); $uq = "UPDATE fnnode SET nsfreshpush=1,nslastx=" . time() . " WHERE nodeid=\"" . ss($nodeid) . "\""; $NATS->DB->Query($uq); echo "1"; $NATS->Stop(); exit;
function NodeSide_Pull($nodeid) { $eventdata = array("nodeid" => $nodeid, "success" => false); $q = "SELECT nsenabled,nspullenabled,nsurl,nskey,nsinterval FROM fnnode WHERE nodeid=\"" . ss($nodeid) . "\" LIMIT 0,1"; $r = $this->DB->Query($q); if (!($row = $this->DB->Fetch_Array($r))) { return false; } $this->DB->Free($r); $url = $row['nsurl']; if ($row['nskey'] != "") { $url .= "?nodekey=" . $row['nskey']; } //echo $url."\n"; $this->Event("NodeSide_Pull Started for " . $nodeid, 10, "Node", "Pull"); $xmlobj = new TNodeXML(); $fp = @fopen($url, "r"); if ($fp <= 0) { $this->Event("Pull Failed URL " . $url, 1, "Node", "Pull"); $this->EventHandler("nodeside_pull", $eventdata); return false; } $xml = ""; while (!feof($fp)) { $xml .= fgets($fp, 4096); } if ($xml == "") { $this->EventHandler("nodeside_pull", $eventdata); return false; } //echo $xml; $result = $xmlobj->Parse($xml); if ($xmlobj->Error() != "") { $this->Event("NodeXML Error: " . $xmlobj->Error(), 1, "Node", "Pull"); $this->EventHandler("nodeside_pull", $eventdata); return false; } $this->Event("NodeSide_Pull Fetched " . $xmlobj->Tests . " tests for " . $nodeid, 10, "Node", "Pull"); // Now just to actually process it... $eventdata['success'] = true; $this->EventHandler("nodeside_pull", $eventdata); $this->NodeSide_Process($nodeid, $xmlobj); return true; }