From 44dca53687438395140918b2fb8238a3e459fa12 Mon Sep 17 00:00:00 2001 From: Marcel Pociot Date: Wed, 19 May 2021 11:35:27 +0200 Subject: [PATCH] Make server configurable when sharing files. Fix react/http compatibility issues --- app/Client/Fileserver/ConnectionHandler.php | 2 +- app/Client/Fileserver/Fileserver.php | 2 +- app/Client/Http/HttpClient.php | 1 + app/Commands/ShareFilesCommand.php | 12 ++++++++---- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/Client/Fileserver/ConnectionHandler.php b/app/Client/Fileserver/ConnectionHandler.php index c90c972..9a01d17 100644 --- a/app/Client/Fileserver/ConnectionHandler.php +++ b/app/Client/Fileserver/ConnectionHandler.php @@ -8,7 +8,7 @@ use GuzzleHttp\Psr7\ServerRequest; use Illuminate\Http\Request; use Psr\Http\Message\ServerRequestInterface; use React\EventLoop\LoopInterface; -use React\Http\Response; +use React\Http\Message\Response; use React\Stream\ReadableResourceStream; use Symfony\Bridge\PsrHttpMessage\Factory\HttpFoundationFactory; use Symfony\Component\Finder\Finder; diff --git a/app/Client/Fileserver/Fileserver.php b/app/Client/Fileserver/Fileserver.php index 691744d..a95cffe 100644 --- a/app/Client/Fileserver/Fileserver.php +++ b/app/Client/Fileserver/Fileserver.php @@ -14,7 +14,7 @@ class Fileserver public function __construct($rootFolder, $name, $port, $address, LoopInterface $loop) { - $server = new Server(function (ServerRequestInterface $request) use ($rootFolder, $name, $loop) { + $server = new Server($loop, function (ServerRequestInterface $request) use ($rootFolder, $name, $loop) { return (new ConnectionHandler($rootFolder, $name, $loop))->handle($request); }); diff --git a/app/Client/Http/HttpClient.php b/app/Client/Http/HttpClient.php index 2505a16..fc30348 100644 --- a/app/Client/Http/HttpClient.php +++ b/app/Client/Http/HttpClient.php @@ -74,6 +74,7 @@ class HttpClient protected function createConnector(): Connector { return new Connector($this->loop, [ + 'dns' => config('expose.dns', '127.0.0.1'), 'tls' => [ 'verify_peer' => false, 'verify_peer_name' => false, diff --git a/app/Commands/ShareFilesCommand.php b/app/Commands/ShareFilesCommand.php index 03b5e11..0dd48ad 100644 --- a/app/Commands/ShareFilesCommand.php +++ b/app/Commands/ShareFilesCommand.php @@ -10,7 +10,7 @@ use Symfony\Component\Console\Output\ConsoleOutput; class ShareFilesCommand extends Command { - protected $signature = 'share-files {folder=.} {--name=} {--subdomain=} {--auth=}'; + protected $signature = 'share-files {folder=.} {--name=} {--subdomain=} {--auth=} {--server-host=} {--server-port=}'; protected $description = 'Share a local folder with a remote expose server'; @@ -31,11 +31,15 @@ class ShareFilesCommand extends Command $this->configureConnectionLogger(); + $serverHost = $this->option('server-host') ?? config('expose.host', 'localhost'); + $serverPort = $this->option('server-port') ?? config('expose.port', 8080); + $auth = $this->option('auth') ?? config('expose.auth_token', ''); + (new Factory()) ->setLoop(app(LoopInterface::class)) - ->setHost(config('expose.host', 'localhost')) - ->setPort(config('expose.port', 8080)) - ->setAuth($this->option('auth')) + ->setHost($serverHost) + ->setPort($serverPort) + ->setAuth($auth) ->createClient() ->shareFolder( $this->argument('folder'),