hopefully fix POST issues again
This commit is contained in:
@@ -1123,8 +1123,17 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
|
|||||||
if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data;
|
if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data;
|
||||||
console.log(" * Incoming", post_string, "request on", socket.id, "from", wtvshared.filterSSID(socket.ssid), "to", headers['request_url'], "(got all expected", socket_sessions[socket.id].post_data_length, "bytes of data from client already)");
|
console.log(" * Incoming", post_string, "request on", socket.id, "from", wtvshared.filterSSID(socket.ssid), "to", headers['request_url'], "(got all expected", socket_sessions[socket.id].post_data_length, "bytes of data from client already)");
|
||||||
headers.post_data = CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data);
|
headers.post_data = CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data);
|
||||||
if (socket_sessions[socket.id].headers) delete socket_sessions[socket.id].headers;
|
delete socket_sessions[socket.id].headers;
|
||||||
|
delete socket_sessions[socket.id].post_data;
|
||||||
|
delete socket_sessions[socket.id].post_data_length;
|
||||||
processURL(socket, headers);
|
processURL(socket, headers);
|
||||||
|
} else if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) {
|
||||||
|
// got too much data ? ... should not ever reach this code (section 2)
|
||||||
|
var errpage = doErrorPage(400, "Received too much data in POST request<br>Got " + (socket_sessions[socket.id].post_data.length / 2) + ", expected " + socket_sessions[socket.id].post_data_length) + " (2)";
|
||||||
|
headers = errpage[0];
|
||||||
|
data = errpage[1];
|
||||||
|
sendToClient(socket, headers, data);
|
||||||
|
return;
|
||||||
} else {
|
} else {
|
||||||
// expecting more data (see below)
|
// expecting more data (see below)
|
||||||
socket_sessions[socket.id].expecting_post_data = true;
|
socket_sessions[socket.id].expecting_post_data = true;
|
||||||
@@ -1132,14 +1141,6 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
|
|||||||
socket_sessions[socket.id].post_data += CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data);
|
socket_sessions[socket.id].post_data += CryptoJS.enc.Hex.parse(socket_sessions[socket.id].post_data);
|
||||||
console.log(" * Incoming", post_string, "request on", socket.id, "from", wtvshared.filterSSID(socket.ssid), "to", headers['request_url'], "(expecting", socket_sessions[socket.id].post_data_length, "bytes of data from client...)");
|
console.log(" * Incoming", post_string, "request on", socket.id, "from", wtvshared.filterSSID(socket.ssid), "to", headers['request_url'], "(expecting", socket_sessions[socket.id].post_data_length, "bytes of data from client...)");
|
||||||
}
|
}
|
||||||
if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) {
|
|
||||||
// got too much data ? ... should not ever reach this code
|
|
||||||
var errpage = doErrorPage(400, "Received too much data in POST request<br>Got " + (socket_sessions[socket.id].post_data.length / 2) + ", expected " + socket_sessions[socket.id].post_data_length);
|
|
||||||
headers = errpage[0];
|
|
||||||
data = errpage[1];
|
|
||||||
sendToClient(socket, headers, data);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
delete socket_sessions[socket.id].headers;
|
delete socket_sessions[socket.id].headers;
|
||||||
@@ -1204,8 +1205,7 @@ async function processRequest(socket, data_hex, skipSecure = false, encryptedReq
|
|||||||
delete socket_sessions[socket.id].post_data_length;
|
delete socket_sessions[socket.id].post_data_length;
|
||||||
processURL(socket, headers);
|
processURL(socket, headers);
|
||||||
return;
|
return;
|
||||||
}
|
} else if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) {
|
||||||
if (socket_sessions[socket.id].post_data.length > (socket_sessions[socket.id].post_data_length * 2)) {
|
|
||||||
if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data;
|
if (socket_sessions[socket.id].expecting_post_data) delete socket_sessions[socket.id].expecting_post_data;
|
||||||
socket.setTimeout(minisrv_config.config.socket_timeout * 1000);
|
socket.setTimeout(minisrv_config.config.socket_timeout * 1000);
|
||||||
// got too much data ? ... should not ever reach this code
|
// got too much data ? ... should not ever reach this code
|
||||||
|
|||||||
Reference in New Issue
Block a user