private function shiftHeadersFromMessageBuffer()
{
$this->buffer = ltrim($this->buffer, "\r\n");
if ($headersSize = strpos($this->buffer, "\r\n\r\n")) {
$headers = substr($this->buffer, 0, $headersSize + 2);
$this->buffer = substr($this->buffer, $headersSize + 4);
} elseif ($headersSize = strpos($this->buffer, "\n\n")) {
$headers = substr($this->buffer, 0, $headersSize + 1);
$this->buffer = substr($this->buffer, $headersSize + 2);
} else {
$headersSize = strlen($this->buffer);
$headers = null;
}
if ($this->maxHeaderBytes > 0 && $headersSize > $this->maxHeaderBytes) {
throw new ParseException($this->getParsedMessageArray(), $msg = "Maximum allowable header size exceeded: {$this->maxHeaderBytes}", $code = 431, $previousException = null);
}
return $headers;
}