Fix: Close current connections to LensProxy on quit

- This speeds up quitting

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton committed 2023-04-12 15:15:36 -04:00
1 parent 2c4a7ecfb4
commit 6c91224b17
3 files changed
+28 -5

No files matched your search

@@ -18,6 +18,7 @@ import type { EmitAppEvent } from "../../common/app-event-bus/emit-event.injecta
import type { Logger } from "../../common/logger";
import type { SelfSignedCert } from "selfsigned";
import type { KubeAuthProxyServer } from "../cluster/kube-auth-proxy-server.injectable";
import stoppable from "stoppable";
export type GetClusterForRequest = (req: http.IncomingMessage) => Cluster | undefined;
export type ServerIncomingMessage = SetRequired<http.IncomingMessage, "url" | "method">;
@@ -65,14 +66,14 @@ const disallowedPorts = new Set([
]);
export class LensProxy {
protected proxyServer: https.Server;
protected readonly proxyServer: https.Server & stoppable.WithStop;
protected closed = false;
protected retryCounters = new Map<string, number>();
protected readonly retryCounters = new Map<string, number>();
constructor(private readonly dependencies: Dependencies) {
this.configureProxy(dependencies.proxy);
this.proxyServer = https.createServer(
this.proxyServer = stoppable(https.createServer(
{
key: dependencies.certificate.private,
cert: dependencies.certificate.cert,
@@ -80,7 +81,7 @@ export class LensProxy {
(req, res) => {
this.handleRequest(req as ServerIncomingMessage, res);
},
);
), 500);
this.proxyServer
.on("upgrade", (req: ServerIncomingMessage, socket: net.Socket, head: Buffer) => {
@@ -175,7 +176,7 @@ export class LensProxy {
this.dependencies.logger.info("[LENS-PROXY]: Closing server");
return new Promise<void>((resolve) => {
this.proxyServer.close(() => resolve());
this.proxyServer.stop(() => resolve());
});
}