/** * * @return Gpf_Net_Server_Http_Request */ private function readRequestHeader() { $this->debug("Trying to read HTTP request's header"); try { $header = $this->driver->read(Gpf_Net_Server_Http_Message::BODY_SEPARATOR, $this->requestHeaderMaxBuffer); $this->debug("HTTP request's header read OK"); } catch (Gpf_Net_Server_SocketException $e) { $this->driver->closeConnection(); throw new Gpf_Net_Server_SocketException("Header: " . $e->getMessage()); } $header = substr($header, 0, -strlen(Gpf_Net_Server_Http_Message::BODY_SEPARATOR)); $request = Gpf_Net_Server_Http_Request::parseHeader($header); $this->debug('URL:' . $request->getUri()); $this->checkRequestHeader($request); $request->setServerVars($this); return $request; }
/** * shutdown server * */ public function shutDown() { foreach ($this->clients as $socket) { $this->socket = $socket; $this->closeConnection(); } parent::shutDown(); }
protected function checkRequiredExtensions() { parent::checkRequiredExtensions(); if (!Gpf_Php::isFunctionEnabled('pcntl_fork')) { throw new Gpf_Exception('Needs pcntl extension to fork processes.'); } }