Skip to content

Commit 2fe19c4

Browse files
committed
Refactor request parser to simply emitting request headers
1 parent 29741b0 commit 2fe19c4

1 file changed

Lines changed: 12 additions & 8 deletions

File tree

src/Io/RequestHeaderParser.php

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
namespace React\Http\Io;
44

55
use Evenement\EventEmitter;
6+
use Psr\Http\Message\ServerRequestInterface;
67
use RingCentral\Psr7 as g7;
78
use Exception;
89

@@ -44,21 +45,24 @@ public function feed($data)
4445

4546
if (false !== $endOfHeader) {
4647
try {
47-
$this->parseAndEmitRequest($endOfHeader);
48+
$request = $this->parseRequest((string)\substr($this->buffer, 0, $endOfHeader));
4849
} catch (Exception $exception) {
4950
$this->emit('error', array($exception));
51+
$this->removeAllListeners();
52+
return;
5053
}
54+
55+
$bodyBuffer = isset($this->buffer[$endOfHeader + 4]) ? \substr($this->buffer, $endOfHeader + 4) : '';
56+
$this->emit('headers', array($request, $bodyBuffer));
5157
$this->removeAllListeners();
5258
}
5359
}
5460

55-
private function parseAndEmitRequest($endOfHeader)
56-
{
57-
$request = $this->parseRequest((string)\substr($this->buffer, 0, $endOfHeader));
58-
$bodyBuffer = isset($this->buffer[$endOfHeader + 4]) ? \substr($this->buffer, $endOfHeader + 4) : '';
59-
$this->emit('headers', array($request, $bodyBuffer));
60-
}
61-
61+
/**
62+
* @param string $headers buffer string containing request headers only
63+
* @throws \InvalidArgumentException
64+
* @return ServerRequestInterface
65+
*/
6266
private function parseRequest($headers)
6367
{
6468
// additional, stricter safe-guard for request line

0 commit comments

Comments
 (0)