]> git.mxchange.org Git - hub.git/commitdiff
Needs to be an object attribute/field.
authorRoland Haeder <roland@mxchange.org>
Sat, 15 Feb 2014 23:13:06 +0000 (00:13 +0100)
committerRoland Haeder <roland@mxchange.org>
Sat, 15 Feb 2014 23:13:06 +0000 (00:13 +0100)
Signed-off-by: Roland Haeder <roland@mxchange.org>
application/hub/main/handler/network/tcp/class_TcpRawDataHandler.php

index aedbb269308f956789aaede1391126e938a33dda..73a128770ed295b3688aa9c8f51ac24b76b71401 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 class TcpRawDataHandler extends BaseRawDataHandler implements Networkable {
+       /**
+        * Last socket error (default: Success)
+        */
+       private $lastSocketError = 0;
+
        /**
         * Protected constructor
         *
@@ -66,7 +71,7 @@ class TcpRawDataHandler extends BaseRawDataHandler implements Networkable {
                $this->setErrorCode(self::SOCKET_ERROR_UNHANDLED);
 
                // Debug message
-               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: Handling TCP package from resource=' . $socketArray[BasePool::SOCKET_ARRAY_RESOURCE] . ',type=' . $socketArray[BasePool::SOCKET_ARRAY_CONN_TYPE] . ',last error=' . socket_strerror(socket_last_error($socketArray[BasePool::SOCKET_ARRAY_RESOURCE])));
+               //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: Handling TCP package from resource=' . $socketArray[BasePool::SOCKET_ARRAY_RESOURCE] . ',type=' . $socketArray[BasePool::SOCKET_ARRAY_CONN_TYPE] . ',last error=' . socket_strerror($this->lastSocketError));
 
                /*
                 * Read the raw data from socket. If you change PHP_BINARY_READ to
@@ -76,14 +81,14 @@ class TcpRawDataHandler extends BaseRawDataHandler implements Networkable {
                $rawData = socket_read($socketArray[BasePool::SOCKET_ARRAY_RESOURCE], $this->getConfigInstance()->getConfigEntry('tcp_buffer_length'), PHP_BINARY_READ);
 
                // Get socket error code back
-               $socketError = socket_last_error($socketArray[BasePool::SOCKET_ARRAY_RESOURCE]);
+               $this->lastSocketError = socket_last_error($socketArray[BasePool::SOCKET_ARRAY_RESOURCE]);
 
                // Debug output of read data length
-               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: rawData[' . gettype($rawData) . ']=' . strlen($rawData) . ',MD5=' . md5($rawData) . ',resource=' . $socketArray[BasePool::SOCKET_ARRAY_RESOURCE] . ',error=' . socket_strerror($socketError));
+               /* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: rawData[' . gettype($rawData) . ']=' . strlen($rawData) . ',MD5=' . md5($rawData) . ',resource=' . $socketArray[BasePool::SOCKET_ARRAY_RESOURCE] . ',error=' . socket_strerror($this->lastSocketError));
                /* NOISY-DEBUG: */ if ($rawData !== FALSE) self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: rawData=' . $rawData);
 
                // Is it valid?
-               if ($socketError == 11) {
+               if ($this->lastSocketError == 11) {
                        // Debug message
                        //* NOISY-DEBUG: */ self::createDebugInstance(__CLASS__)->debugOutput('TCP-HANDLER[' . __LINE__ . ']: Ignoring error 11 (Resource temporary unavailable) from socket resource=' . $socketArray[BasePool::SOCKET_ARRAY_RESOURCE]);
 
@@ -96,9 +101,9 @@ class TcpRawDataHandler extends BaseRawDataHandler implements Networkable {
 
                         // Skip any further processing
                         return;
-               } elseif (($rawData === FALSE) || ($socketError > 0)) {
+               } elseif (($rawData === FALSE) || ($this->lastSocketError > 0)) {
                        // Network error or connection lost
-                       $this->setErrorCode($socketError);
+                       $this->setErrorCode($this->lastSocketError);
                } elseif (empty($rawData)) {
                        // The peer did send nothing to us which is now being ignored
                        return;