浏览代码

更改判断接收缓冲区位置

walkor 11 年之前
父节点
当前提交
0d13c6891a
共有 1 个文件被更改,包括 8 次插入6 次删除
  1. 8 6
      workerman/Core/SocketWorker.php

+ 8 - 6
workerman/Core/SocketWorker.php

@@ -395,6 +395,14 @@ abstract class SocketWorker extends AbstractWorker
         $this->recvBuffers[$fd]['buf'] .= $buffer;
         
         $remain_len = $this->dealInput($this->recvBuffers[$fd]['buf']);
+        
+        // 判断是否大于接收缓冲区最大值限制
+        if(strlen($this->recvBuffers[$fd]['buf']) + $remain_len > $this->maxRecvBufferSize)
+        {
+            $this->notice('client_ip:'.$this->getRemoteIp().' strlen(recvBuffers['.$this->currentDealFd.'])='.strlen($this->recvBuffers[$fd]['buf']).'+' . $remain_len . '>' . $this->maxRecvBufferSize.' and close connection');
+            return false;
+        }
+        
         // 包接收完毕
         if(0 === $remain_len)
         {
@@ -436,12 +444,6 @@ abstract class SocketWorker extends AbstractWorker
         }
         else 
         {
-            // 判断是否大于接收缓冲区最大值限制
-            if(strlen($this->recvBuffers[$fd]['buf']) + $remain_len > $this->maxRecvBufferSize)
-            {
-                $this->notice('client_ip:'.$this->getRemoteIp().' strlen(recvBuffers['.$this->currentDealFd.'])='.strlen($this->recvBuffers[$fd]['buf']).'+' . $remain_len . '>' . $this->maxRecvBufferSize.' and close connection');
-                return false;
-            }
             $this->recvBuffers[$fd]['remain_len'] = $remain_len;
         }