+ // @TODO The whole resolving part should be moved out and made more configurable
+ // Init recipient data
+ $recipientData = NULL;
+
+ // Try to solve the recipient
+ try {
+ // Resolve any session ids; 0 = IP, 1 = Port
+ $recipientData = explode(':', HubTools::resolveSessionId($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT]));
+ } catch (NoValidHostnameException $e) {
+ // Debug message
+ $helperInstance->debugOutput('CONNECTION: Failed to resolve ' . $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . ':' . $e->getMessage());
+
+ // Is the recipient equal as configured IP
+ if (substr($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT], 0, strlen($helperInstance->getConfigInstance()->getConfigEntry('external_ip'))) == $helperInstance->getConfigInstance()->getConfigEntry('external_ip')) {
+ // This connects to ship-simu.org and requests /ip.php which will return our external IP number
+ $recipientData[0] = ConsoleTools::determineExternalIp();
+
+ // Do we have hostname:ip match?
+ if (strpos($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT], ':') === false) {
+ // No hostname:ip!
+ $helperInstance->debugInstance($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . ' does not contain ":". Please fix this.');
+ } // END - if
+
+ // "explode" the hostname:ip, so index 1 will be the port number
+ $recipientArray = explode(':', $packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT]);
+
+ // Add the port
+ $recipientData[1] = $recipientArray[1];
+ } else {
+ // It doesn't match, we need to take care of this later
+ $helperInstance->debugInstance($packageData[NetworkPackage::PACKAGE_DATA_RECIPIENT] . '!=' . $helperInstance->getConfigInstance()->getConfigEntry('external_ip'));
+ }
+ }