diff --git a/app/Client/Http/Controllers/AttachDataToLogController.php b/app/Client/Http/Controllers/AttachDataToLogController.php index 5685acd..439ec6a 100644 --- a/app/Client/Http/Controllers/AttachDataToLogController.php +++ b/app/Client/Http/Controllers/AttachDataToLogController.php @@ -4,6 +4,7 @@ namespace App\Client\Http\Controllers; use App\Http\Controllers\Controller; use App\Logger\RequestLogger; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Http\Request; @@ -28,11 +29,11 @@ class AttachDataToLogController extends Controller $this->requestLogger->pushLoggedRequest($loggedRequest); - $httpConnection->send(str(new Response(200))); + $httpConnection->send(Message::toString(new Response(200))); return; } - $httpConnection->send(str(new Response(404))); + $httpConnection->send(Message::toString(new Response(404))); } } diff --git a/app/Client/Http/Controllers/CreateTunnelController.php b/app/Client/Http/Controllers/CreateTunnelController.php index d87502b..610d624 100644 --- a/app/Client/Http/Controllers/CreateTunnelController.php +++ b/app/Client/Http/Controllers/CreateTunnelController.php @@ -3,6 +3,7 @@ namespace App\Client\Http\Controllers; use App\Http\Controllers\Controller; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Http\Request; @@ -20,7 +21,7 @@ class CreateTunnelController extends Controller $httpConnection->send(respond_json($data)); $httpConnection->close(); }, function () use ($httpConnection) { - $httpConnection->send(str(new Response(500))); + $httpConnection->send(Message::toString(new Response(500))); $httpConnection->close(); }); } diff --git a/app/Client/Http/Controllers/PushLogsToDashboardController.php b/app/Client/Http/Controllers/PushLogsToDashboardController.php index da1d925..b3b41b1 100644 --- a/app/Client/Http/Controllers/PushLogsToDashboardController.php +++ b/app/Client/Http/Controllers/PushLogsToDashboardController.php @@ -5,6 +5,7 @@ namespace App\Client\Http\Controllers; use App\Http\Controllers\Controller; use App\WebSockets\Socket; use Exception; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Http\Request; @@ -23,9 +24,9 @@ class PushLogsToDashboardController extends Controller $webSocketConnection->send($request->getContent()); } - $httpConnection->send(str(new Response(200))); + $httpConnection->send(Message::toString(new Response(200))); } catch (Exception $e) { - $httpConnection->send(str(new Response(500, [], $e->getMessage()))); + $httpConnection->send(Message::toString(new Response(500, [], $e->getMessage()))); } } } diff --git a/app/Client/Http/HttpClient.php b/app/Client/Http/HttpClient.php index fc30348..0227eea 100644 --- a/app/Client/Http/HttpClient.php +++ b/app/Client/Http/HttpClient.php @@ -6,6 +6,7 @@ use App\Client\Configuration; use App\Client\Http\Modifiers\CheckBasicAuthentication; use App\Logger\RequestLogger; use Clue\React\Buzz\Browser; +use GuzzleHttp\Psr7\Message; use function GuzzleHttp\Psr7\parse_request; use function GuzzleHttp\Psr7\str; use Laminas\Http\Request; @@ -85,17 +86,19 @@ class HttpClient protected function sendRequestToApplication(RequestInterface $request, $proxyConnection = null) { (new Browser($this->loop, $this->createConnector())) - ->withOptions([ - 'followRedirects' => false, - 'obeySuccessCode' => false, - 'streaming' => true, - ]) - ->send($request) + ->withFollowRedirects(true) + ->withRejectErrorResponse(false) + ->requestStreaming( + $request->getMethod(), + $request->getUri(), + $request->getHeaders(), + $request->getBody() + ) ->then(function (ResponseInterface $response) use ($proxyConnection) { if (! isset($response->buffer)) { $response = $this->rewriteResponseHeaders($response); - $response->buffer = str($response); + $response->buffer = Message::toString($response); } $this->sendChunkToServer($response->buffer, $proxyConnection); diff --git a/app/Client/Http/Modifiers/CheckBasicAuthentication.php b/app/Client/Http/Modifiers/CheckBasicAuthentication.php index 9024ec4..c0f69a4 100644 --- a/app/Client/Http/Modifiers/CheckBasicAuthentication.php +++ b/app/Client/Http/Modifiers/CheckBasicAuthentication.php @@ -3,6 +3,7 @@ namespace App\Client\Http\Modifiers; use App\Client\Configuration; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Support\Arr; @@ -29,7 +30,7 @@ class CheckBasicAuthentication if (is_null($username)) { $proxyConnection->send( - str(new Response(401, [ + Message::toString(new Response(401, [ 'WWW-Authenticate' => 'Basic realm=Expose', ], 'Unauthorized')) ); diff --git a/app/Server/Http/Controllers/Admin/AdminController.php b/app/Server/Http/Controllers/Admin/AdminController.php index cd63a97..28354d6 100644 --- a/app/Server/Http/Controllers/Admin/AdminController.php +++ b/app/Server/Http/Controllers/Admin/AdminController.php @@ -3,6 +3,7 @@ namespace App\Server\Http\Controllers\Admin; use App\Http\Controllers\Controller; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Http\Request; @@ -24,7 +25,7 @@ abstract class AdminController extends Controller return true; } catch (\Throwable $e) { - $httpConnection->send(str(new Response(401, [ + $httpConnection->send(Message::toString(new Response(401, [ 'WWW-Authenticate' => 'Basic realm="Expose"', ]))); } diff --git a/app/Server/Http/Controllers/Admin/RedirectToUsersController.php b/app/Server/Http/Controllers/Admin/RedirectToUsersController.php index c6e9eb1..e12be8c 100644 --- a/app/Server/Http/Controllers/Admin/RedirectToUsersController.php +++ b/app/Server/Http/Controllers/Admin/RedirectToUsersController.php @@ -2,6 +2,7 @@ namespace App\Server\Http\Controllers\Admin; +use GuzzleHttp\Psr7\Message; use GuzzleHttp\Psr7\Response; use function GuzzleHttp\Psr7\str; use Illuminate\Http\Request; @@ -12,7 +13,7 @@ class RedirectToUsersController extends AdminController { public function handle(Request $request, ConnectionInterface $httpConnection) { - $httpConnection->send(str(new Response(301, [ + $httpConnection->send(Message::toString(new Response(301, [ 'Location' => '/sites', ]))); } diff --git a/app/helpers.php b/app/helpers.php index 376eeac..35441d3 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -1,11 +1,12 @@ 'application/json'], json_encode($responseData, JSON_INVALID_UTF8_IGNORE) @@ -14,7 +15,7 @@ function respond_json($responseData, int $statusCode = 200) function respond_html(string $html, int $statusCode = 200) { - return str(new Response( + return Message::toString(new Response( $statusCode, ['Content-Type' => 'text/html'], $html diff --git a/config/expose.php b/config/expose.php index 2defa53..ec09423 100644 --- a/config/expose.php +++ b/config/expose.php @@ -36,7 +36,7 @@ return [ | | The DNS server to use when resolving the shared URLs. | When Expose is running from within Docker containers, you should set this to - | `true` to fall-back to the system default DNS servers. + | `true` to fall-back to the system default DNS servers. | */ 'dns' => '127.0.0.1',