]> git.mxchange.org Git - hub.git/blobdiff - application/hub/main/resolver/state/peer/class_PeerStateResolver.php
Continued on development of 'hub' project with many refactorings/addings:
[hub.git] / application / hub / main / resolver / state / peer / class_PeerStateResolver.php
index 6f3afd67d6d8ce740d5a4b4de30114f758a07111..b51175fd86acb1e900b280a438a4b5fb7096a33e 100644 (file)
@@ -55,6 +55,7 @@ class PeerStateResolver extends BaseStateResolver implements StateResolver {
         * @param       $packageData            Raw package data
         * @param       $socketResource         A valid socket resource
         * @return      $stateInstance          An instance of the resolved state
+        * @throws      InvalidSocketException  If socketResource, even from getSocketResource() is no valid resource
         * @todo        ~30% done
         */
        public static function resolveStateByPackage (ConnectionHelper $helperInstance, array $packageData, $socketResource) {
@@ -68,6 +69,12 @@ class PeerStateResolver extends BaseStateResolver implements StateResolver {
                if (!is_resource($socketResource)) {
                        // No, so get socket resource from helper
                        $socketResource = $helperInstance->getSocketResource();
+
+                       // Still no socket resource?
+                       if (!is_resource($socketResource)) {
+                               // Then abort here with an exception (may happen after socket_shutdown())
+                               throw new InvalidSocketException(array($helperInstance, $socketResource, 'unknown', 'unknown'), BaseListener::EXCEPTION_INVALID_SOCKET);
+                       } // END - if
                } // END - if
 
                // Get error code from it