Added custom server host ability

This commit is contained in:
Marcel Pociot committed 2021-06-01 21:19:12 +02:00
1 parent 5e54d0a80f
commit 44b100b340
13 files changed
+116 -44

No files matched your search

@@ -41,6 +41,7 @@ class TunnelMessageController extends Controller
public function handle(Request $request, ConnectionInterface $httpConnection)
{
$subdomain = $this->detectSubdomain($request);
$serverHost = $this->detectServerHost($request);
if (is_null($subdomain)) {
$httpConnection->send(
@@ -51,7 +52,7 @@ class TunnelMessageController extends Controller
return;
}
$controlConnection = $this->connectionManager->findControlConnectionForSubdomain($subdomain);
$controlConnection = $this->connectionManager->findControlConnectionForSubdomainAndServerHost($subdomain, $serverHost);
if (is_null($controlConnection)) {
$httpConnection->send(
@@ -69,11 +70,16 @@ class TunnelMessageController extends Controller
protected function detectSubdomain(Request $request): ?string
{
$subdomain = Str::before($request->getHost(), '.'.$this->configuration->hostname());
$subdomain = Str::before($request->getHost(), '.');
return $subdomain === $request->getHost() ? null : $subdomain;
}
protected function detectServerHost(Request $request): ?string
{
return Str::after($request->getHost(), '.');
}
protected function sendRequestToClient(Request $request, ControlConnection $controlConnection, ConnectionInterface $httpConnection)
{
$request = $this->prepareRequest($request, $controlConnection);