Time out connections that don't send a request in time.

git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3895 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
Cory McWilliams 2022-06-07 01:00:50 +00:00
parent a8ced8757c
commit ae894eaa9d

View File

@ -4,6 +4,8 @@ var gHandlers = [];
var gSocketHandlers = []; var gSocketHandlers = [];
var gBadRequests = {}; var gBadRequests = {};
const kRequestTimeout = 15000;
function logError(error) { function logError(error) {
print("ERROR " + error); print("ERROR " + error);
if (error.stackTrace) { if (error.stackTrace) {
@ -394,6 +396,17 @@ function handleConnection(client) {
var lineByLine = true; var lineByLine = true;
var bodyToRead = -1; var bodyToRead = -1;
var body; var body;
var requestCount = -1;
function resetTimeout(requestIndex) {
setTimeout(function() {
if (bodyToRead == -1 && requestCount == requestIndex) {
badRequest(client, 'Timed out waiting for request.');
}
}, kRequestTimeout);
}
resetTimeout(++requestCount);
function reset() { function reset() {
inputBuffer = new Uint8Array(0); inputBuffer = new Uint8Array(0);
@ -402,6 +415,7 @@ function handleConnection(client) {
lineByLine = true; lineByLine = true;
bodyToRead = -1; bodyToRead = -1;
body = undefined; body = undefined;
resetTimeout(++requestCount);
} }
function finish() { function finish() {