Subscribe to more error events to prevent the process from crashing

This commit is contained in:
Sander Declerck 2025-10-31 09:39:16 +01:00
parent c284ad7ba9
commit 65c9ca62de
No known key found for this signature in database
3 changed files with 44 additions and 12 deletions

View file

@ -37,13 +37,19 @@ function createHttpsServer(hostname, isAllowed) {
forwardRequest(req, hostname, res);
}
return https.createServer(
const server = https.createServer(
{
key: cert.privateKey,
cert: cert.certificate,
},
handleRequest
);
server.on("error", (err) => {
ui.writeError(`Safe-chain: HTTPS server error: ${err.message}`);
});
return server;
}
function getRequestPathAndQuery(url) {
@ -62,6 +68,11 @@ function forwardRequest(req, hostname, res) {
res.end("Bad Gateway");
});
req.on("error", (err) => {
ui.writeError(`Safe-chain: Error reading client request: ${err.message}`);
proxyReq.destroy();
});
req.on("data", (chunk) => {
proxyReq.write(chunk);
});
@ -88,6 +99,16 @@ function createProxyRequest(hostname, req, res) {
}
const proxyReq = https.request(options, (proxyRes) => {
proxyRes.on("error", (err) => {
ui.writeError(
`Safe-chain: Error reading upstream response: ${err.message}`
);
if (!res.headersSent) {
res.writeHead(502);
res.end("Bad Gateway");
}
});
res.writeHead(proxyRes.statusCode, proxyRes.headers);
proxyRes.pipe(res);
});