private function checkHeader()

in provider/fsof/FSOFProtocol.php [45:87]


    private function checkHeader($client_id, $fsof_data)
    {
    	$request = NULL;
        if (!isset($this->requests[$client_id]))
		{
			//新连接
            $this->logger->debug("new request from {$client_id}");
            if (!empty($this->buffer_header[$client_id]))
			{
                $fsof_data = $this->buffer_header[$client_id].$fsof_data;
            }
            $this->buffer_header[$client_id] = $fsof_data;

            //数据长度还不够
            if (strlen($fsof_data) < DubboParser::PACKAGE_HEDA_LEN)
			{
                return false;
            }
			else
			{
                unset($this->buffer_header[$client_id]);
                $request = new DubboRequest();
                $request->setFullData($fsof_data);
                $request = $this->parser->parseRequestHeader($request);
                //解析失败
                if ($request == false)
				{
                    $this->logger->error("parse request Header fail. fsof_data=" . $fsof_data);
                    return false;
                }
                //保存请求
                $this->logger->debug("create one request for {$client_id}");
                $this->requests[$client_id] = $request;
            }
        }
		else
		{
            $this->logger->debug("append request data for {$client_id}");
            $request = $this->requests[$client_id];
            $request->setFullData($fsof_data);
        }
        return $request;
    }