mirror of
https://github.com/bitinflow/expose.git
synced 2026-03-13 21:45:55 +00:00
Merge branch 'dashboard-modifications' into share-files
This commit is contained in:
@@ -140,7 +140,7 @@ class Factory
|
||||
$this->router->post('/api/logs/{request_id}/data', AttachDataToLogController::class);
|
||||
$this->router->get('/api/logs/clear', ClearLogsController::class);
|
||||
|
||||
$this->app->route('/socket', new WsServer(new Socket()), ['*']);
|
||||
$this->app->route('/socket', new WsServer(new Socket()), ['*'], "");
|
||||
|
||||
foreach ($this->router->getRoutes()->all() as $name => $route) {
|
||||
$this->app->routes->add($name, $route);
|
||||
@@ -162,7 +162,7 @@ class Factory
|
||||
|
||||
config()->set('expose.dashboard_port', $dashboardPort);
|
||||
|
||||
$this->app = new App('127.0.0.1', $dashboardPort, '0.0.0.0', $this->loop);
|
||||
$this->app = new App('0.0.0.0', $dashboardPort, '0.0.0.0', $this->loop);
|
||||
|
||||
$this->addRoutes();
|
||||
|
||||
|
||||
@@ -4,8 +4,12 @@ namespace App\Client\Http\Controllers;
|
||||
|
||||
use App\Client\Http\HttpClient;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Logger\LoggedRequest;
|
||||
use App\Logger\RequestLogger;
|
||||
use GuzzleHttp\Psr7\Message;
|
||||
use GuzzleHttp\Psr7\Response;
|
||||
use Illuminate\Support\Str;
|
||||
use Laminas\Http\Header\GenericHeader;
|
||||
use function GuzzleHttp\Psr7\str;
|
||||
use Illuminate\Http\Request;
|
||||
use Ratchet\ConnectionInterface;
|
||||
@@ -29,13 +33,15 @@ class ReplayLogController extends Controller
|
||||
$loggedRequest = $this->requestLogger->findLoggedRequest($request->get('log'));
|
||||
|
||||
if (is_null($loggedRequest)) {
|
||||
$httpConnection->send(str(new Response(404)));
|
||||
$httpConnection->send(Message::toString(new Response(404)));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->httpClient->performRequest($loggedRequest->getRequestData());
|
||||
$loggedRequest->refreshId();
|
||||
|
||||
$httpConnection->send(str(new Response(200)));
|
||||
$this->httpClient->performRequest($loggedRequest->getRequest()->toString());
|
||||
|
||||
$httpConnection->send(Message::toString(new Response(200)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ use Symfony\Component\Console\Output\ConsoleOutput;
|
||||
|
||||
class ShareCommand extends Command
|
||||
{
|
||||
protected $signature = 'share {host} {--subdomain=} {--auth=} {--server-host=} {--server-port=}';
|
||||
protected $signature = 'share {host} {--subdomain=} {--auth=} {--server-host=} {--server-port=} {--dns=}';
|
||||
|
||||
protected $description = 'Share a local url with a remote expose server';
|
||||
|
||||
@@ -31,6 +31,14 @@ class ShareCommand extends Command
|
||||
$serverPort = $this->option('server-port') ?? config('expose.port', 8080);
|
||||
$auth = $this->option('auth') ?? config('expose.auth_token', '');
|
||||
|
||||
if (strstr($this->argument('host'), 'host.docker.internal')) {
|
||||
config(['expose.dns' => true]);
|
||||
}
|
||||
|
||||
if ($this->option('dns') !== null) {
|
||||
config(['expose.dns' => empty($this->option('dns')) ? true : $this->option('dns')]);
|
||||
}
|
||||
|
||||
(new Factory())
|
||||
->setLoop(app(LoopInterface::class))
|
||||
->setHost($serverHost)
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Logger;
|
||||
|
||||
use Carbon\Carbon;
|
||||
use Laminas\Http\Header\GenericHeader;
|
||||
use function GuzzleHttp\Psr7\parse_request;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Str;
|
||||
@@ -211,4 +212,17 @@ class LoggedRequest implements \JsonSerializable
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
public function refreshId()
|
||||
{
|
||||
$requestId = (string) Str::uuid();
|
||||
|
||||
$this->getRequest()->getHeaders()->removeHeader(
|
||||
$this->getRequest()->getHeader('x-expose-request-id')
|
||||
);
|
||||
|
||||
$this->getRequest()->getHeaders()->addHeader(new GenericHeader('x-expose-request-id', $requestId));
|
||||
|
||||
$this->id = $requestId;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user