]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/database/wrapper/node/class_NodeListDatabaseWrapper.php
Decoding of raw package message basicly finished, external public ip now included...
[hub.git] / application / hub / main / database / wrapper / node / class_NodeListDatabaseWrapper.php
index 8b0214c3c7676ae5f7347d9ccbe81ee0604a03a4..c9d47e4f6c12e65a5bac1d66c059fbfe5bb147f2 100644 (file)
@@ -90,6 +90,39 @@ class NodeListDatabaseWrapper extends BaseDatabaseWrapper implements Registerabl
                // Return result
                return $recipient;
        }
+
+       /**
+        * Resolves a ip:port combination into a session id
+        *
+        * @param       $ipPort         Ip:port combination
+        * @return      $sessionId      A valid session id
+        */
+       public function resolveSessionIdByIpPort ($ipPort) {
+               // Set invalid session id as default
+               $sessionId = 'invalid';
+
+               // Now get a search criteria instance
+               $searchInstance = ObjectFactory::createObjectByConfiguredName('search_criteria_class');
+
+               // Search for the node session id
+               $searchInstance->addCriteria(NodeListDatabaseWrapper::DB_COLUMN_NODE_IP_PORT, $ipPort);
+               $searchInstance->setLimit(1);
+
+               // Get a result back
+               $resultInstance = $this->doSelectByCriteria($searchInstance);
+
+               // Is it valid?
+               if ($resultInstance->next()) {
+                       // Save the result instance in this class
+                       $this->setResultInstance($resultInstance);
+
+                       // Get the session from result
+                       $sessionId = $this->getField(NodeListDatabaseWrapper::DB_COLUMN_NODE_SESSION_ID);
+               } // END - if
+
+               // Return result
+               return $sessionId;
+       }
 }
 
 // [EOF]