|
|
@@ -16,12 +16,10 @@ declare(strict_types=1);
|
|
|
|
|
|
namespace Workerman\Protocols;
|
|
|
|
|
|
-use Throwable;
|
|
|
use Workerman\Connection\TcpConnection;
|
|
|
use Workerman\Protocols\Http\Request;
|
|
|
use Workerman\Protocols\Http\Response;
|
|
|
use function clearstatcache;
|
|
|
-use function count;
|
|
|
use function explode;
|
|
|
use function filesize;
|
|
|
use function fopen;
|
|
|
@@ -32,7 +30,6 @@ use function in_array;
|
|
|
use function ini_get;
|
|
|
use function is_array;
|
|
|
use function is_object;
|
|
|
-use function key;
|
|
|
use function preg_match;
|
|
|
use function strlen;
|
|
|
use function strpos;
|
|
|
@@ -135,23 +132,9 @@ class Http
|
|
|
*/
|
|
|
public static function decode(string $buffer, TcpConnection $connection): Request
|
|
|
{
|
|
|
- static $requests = [];
|
|
|
- if (isset($requests[$buffer])) {
|
|
|
- $request = clone $requests[$buffer];
|
|
|
- $request->connection = $connection;
|
|
|
- $connection->request = $request;
|
|
|
- $request->properties = [];
|
|
|
- return $request;
|
|
|
- }
|
|
|
$request = new static::$requestClass($buffer);
|
|
|
$request->connection = $connection;
|
|
|
$connection->request = $request;
|
|
|
- if (!isset($buffer[TcpConnection::MAX_CACHE_STRING_LENGTH])) {
|
|
|
- $requests[$buffer] = $request;
|
|
|
- if (count($requests) > TcpConnection::MAX_CACHE_SIZE) {
|
|
|
- unset($requests[key($requests)]);
|
|
|
- }
|
|
|
- }
|
|
|
return $request;
|
|
|
}
|
|
|
|