* @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) {
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