mirror of
https://github.com/AikidoSec/safe-chain.git
synced 2026-05-26 12:10:49 +00:00
Check if a socket is writable before writing to it
This commit is contained in:
parent
cfce641053
commit
219a189993
1 changed files with 15 additions and 5 deletions
|
|
@ -35,7 +35,9 @@ function tunnelRequestToDestination(req, clientSocket, head) {
|
||||||
ui.writeError(
|
ui.writeError(
|
||||||
`Safe-chain: error connecting to ${hostname}:${port} - ${err.message}`
|
`Safe-chain: error connecting to ${hostname}:${port} - ${err.message}`
|
||||||
);
|
);
|
||||||
|
if (clientSocket.writable) {
|
||||||
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -76,9 +78,13 @@ function tunnelRequestViaProxy(req, clientSocket, head, proxyUrl) {
|
||||||
ui.writeError(
|
ui.writeError(
|
||||||
`Safe-chain: proxy CONNECT failed: ${response.split("\r\n")[0]}`
|
`Safe-chain: proxy CONNECT failed: ${response.split("\r\n")[0]}`
|
||||||
);
|
);
|
||||||
|
if (clientSocket.writable) {
|
||||||
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
||||||
|
}
|
||||||
|
if (proxySocket.writable) {
|
||||||
proxySocket.end();
|
proxySocket.end();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
proxySocket.on("error", (err) => {
|
proxySocket.on("error", (err) => {
|
||||||
|
|
@ -88,11 +94,15 @@ function tunnelRequestViaProxy(req, clientSocket, head, proxyUrl) {
|
||||||
proxy.port || 8080
|
proxy.port || 8080
|
||||||
} - ${err.message}`
|
} - ${err.message}`
|
||||||
);
|
);
|
||||||
|
if (clientSocket.writable) {
|
||||||
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
clientSocket.end("HTTP/1.1 502 Bad Gateway\r\n\r\n");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
clientSocket.on("error", () => {
|
clientSocket.on("error", () => {
|
||||||
|
if (proxySocket.writable) {
|
||||||
proxySocket.end();
|
proxySocket.end();
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue