/** * On a new connection instantiate a new RequestParser and listen for the data event until such time as all headers * are parsed. When this happens a Request object will be generated and Server::handleRequest will be called. * * @param ConnectionInterface $conn */ protected function handleNewConnection(ConnectionInterface $conn) { $parser = new RequestParser(); $parser->on('headers', function (ServerRequest $request) use($conn, $parser) { // attach remote ip to the request as metadata $request = $request->withConnection($conn); $conn->removeListener('data', array($parser, 'feed')); $this->handleRequest($conn, $request); }); $conn->on('data', array($parser, 'feed')); }
public function testBodyShouldNotOverflowHeader() { $error = null; $parser = new RequestParser(); $parser->on('headers', $this->expectCallableOnce()); $parser->on('error', function ($message) use(&$error) { $error = $message; }); $data = str_repeat('A', 4097); $parser->feed($this->createAdvancedPostRequest() . $data); $this->assertNull($error); }