private function processRequestObjects($objectNode) { $objects = $objectNode->getElementsByTagName('SIF_Object'); foreach ($objects as $object) { $objectName = $object->getAttribute('ObjectName'); $contexts = $object->getElementsByTagName('SIF_Context'); if (!DataObject::objectExists($objectName)) { ProvisionError::invalidObject($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { if ($contexts->length != 0) { foreach ($contexts as $context) { $contextId = Context::getContextId($context->nodeValue); if (!DataObject::allowedToRequest($this->agent->agentId, $objectName, $contextId)) { ProvisionError::invalidPermissionToRequest($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { $dataObject = new DataObject($objectName); $dataObject->contextId = $contextId; array_push($this->requestObjects, $dataObject); } //check if allowed to request } } else { if (!DataObject::allowedToRequest($this->agent->agentId, $objectName)) { ProvisionError::invalidPermissionToRequest($this->originalSourceId, $this->originalMsgId, $objectName); if (CODELEVEL != 3) { exit; } else { return false; } } else { $dataObject = new DataObject($objectName); array_push($this->requestObjects, $dataObject); } //check if allowed to request } //check if there are contexts } //check if object exist } //loop through objects }
private function processRequest($m) { $dom = $m->dom; $this->originalSourceId = $m->sourceId; $originalSourceId = $m->sourceId; $this->originalMsgId = $m->msgId; $originalMsgId = $m->msgId; $headerNode = $m->headerNode; $this->headerNode = $headerNode; $validSourceId = Agent::checkSourceId($originalSourceId); if (!$validSourceId) { RegisterError::invalidSourceId($agent->sourceId, $originalMsgId); exit; } else { $agent = new Agent($originalSourceId); if (!$agent->isRegistered()) { RegisterError::notRegisteredError($originalSourceId, $originalMsgId); exit; } else { $sentBufferSize = $dom->getElementsByTagName('SIF_MaxBufferSize')->item(0)->nodeValue; if (!Agent::bufferSizeAllowed($sentBufferSize, $agent->agentId)) { $timestamp = Utility::createTimestamp(); $msgId = Utility::createMessageId(); XmlHelper::buildSuccessMessage($msgId, $timestamp, $this->originalSourceId, $this->originalMsgId, 0, $originalMsg = null, $desc = null); } else { $messageNode = $dom->getElementsByTagName('SIF_Message'); $len = $messageNode->item(0)->childNodes->item(0)->childNodes->length - 1; $Mode = $messageNode->item(0)->childNodes->item(0)->childNodes->item($len)->nodeName; if ($Mode == 'SIF_Query') { $sifObjectNode = $dom->getElementsByTagName('SIF_QueryObject')->item(0); $objectName = $sifObjectNode->getAttribute('ObjectName'); } else { $sifObjectNode = $dom->getElementsByTagName('SIF_From')->item(0); $objectName = $sifObjectNode->getAttribute('ObjectName'); } if (!DataObject::objectExists($objectName)) { RequestError::invalidObject($originalSourceId, $originalMsgId, $objectName); exit; } else { if (!DataObject::allowedToRequest($agent->agentId, $objectName)) { ProvisionError::invalidPermissionToRequest($originalSourceId, $originalMsgId, $objectName); exit; } else { $sifDestinationId = $dom->getElementsByTagName('SIF_DestinationId'); if ($sifDestinationId->length != 0) { $sourceId = $sifDestinationId->item(0)->nodeValue; if (!DataObject::validResponder($objectName, $sourceId)) { RequestError::invalidProvider($originalSourceId, $originalMsgId); } else { $this->setupRequest($objectName, $sourceId, $agent); } //check if destination id is valid } else { $this->setupRequest($objectName, $sourceId = null, $agent); } //check if there is a destination id } //check if allowed to request } //check if allowed to request } //check object exist } //check if registered } //check sourceId }
private function processRequest($m) { try { $dom = $m->dom; $this->originalSourceId = $m->sourceId; $originalSourceId = $m->sourceId; $this->originalMsgId = $m->msgId; $originalMsgId = $m->msgId; $headerNode = $m->headerNode; $this->headerNode = $headerNode; $validSourceId = Agent::checkSourceId($originalSourceId); if (!$validSourceId) { RegisterError::invalidSourceId($agent->sourceId, $originalMsgId); exit; } else { $agent = new Agent($originalSourceId); if (!$agent->isRegistered()) { RegisterError::notRegisteredError($originalSourceId, $originalMsgId); exit; } else { $sentBufferSize = $dom->getElementsByTagName('SIF_MaxBufferSize')->item(0)->nodeValue; if (!Agent::bufferSizeAllowed($sentBufferSize, $agent->agentId)) { $timestamp = Utility::createTimestamp(); $msgId = Utility::createMessageId(); XmlHelper::buildSuccessMessage($msgId, $timestamp, $this->originalSourceId, $this->originalMsgId, 0, $originalMsg = null, $desc = null); } else { $messageNode = $dom->getElementsByTagName('SIF_Message'); $len = $messageNode->item(0)->childNodes->item(0)->childNodes->length - 1; $Mode = $messageNode->item(0)->childNodes->item(0)->childNodes->item($len)->nodeName; if ($Mode == 'SIF_Query') { $sifObjectNode = $dom->getElementsByTagName('SIF_QueryObject')->item(0); $objectName = $sifObjectNode->getAttribute('ObjectName'); } else { $sifObjectNode = $dom->getElementsByTagName('SIF_From')->item(0); $objectName = $sifObjectNode->getAttribute('ObjectName'); } if (!DataObject::objectExists($objectName)) { /* This is a temporary fix that needs to be evaluated for correctness. */ if ($objectName == 'SIF_ZoneStatus') { require_once 'main_lib/systemcontrol/SystemControl.php'; $systemControl = new SystemControl($m, false, true); exit; } RequestError::invalidObject($originalSourceId, $originalMsgId, $objectName); exit; } else { if (!DataObject::allowedToRequest($agent->agentId, $objectName)) { ProvisionError::invalidPermissionToRequest($originalSourceId, $originalMsgId, $objectName); exit; } else { $sifDestinationId = $dom->getElementsByTagName('SIF_DestinationId'); if ($sifDestinationId->length != 0) { $sourceId = $sifDestinationId->item(0)->nodeValue; if (!DataObject::validResponder($objectName, $sourceId)) { RequestError::invalidProvider($originalSourceId, $originalMsgId); } else { $this->setupRequest($objectName, $sourceId, $agent); } //check if destination id is valid } else { $this->setupRequest($objectName, $sourceId = null, $agent); } //check if there is a destination id } //check if allowed to request } //check if allowed to request } //check object exist } //check if registered } //check sourceId } catch (Exception $e) { ZitLog::writeToErrorLog("[processRequest]", "Errors:{$e->getTraceAsString}()", "Main Loop", $_SESSION['ZONE_ID']); } }