1
0
mirror of https://gitlab.xiph.org/xiph/icecast-server.git synced 2024-12-04 14:46:30 -05:00

Fix: Corrected handling of TLS body errors and timeouts

This commit is contained in:
Philipp Schafft 2024-10-23 02:54:33 +00:00
parent 829b8ee4f7
commit ba5e2b2c24

View File

@ -767,7 +767,7 @@ static client_slurp_result_t process_request_body_queue_one(client_queue_entry_t
}
if (res != CLIENT_SLURP_SUCCESS) {
if (client->con->con_time <= timeout || client->request_body_read >= body_size_limit || client->con->error) {
if (client->con->con_time <= (time(NULL) - timeout) || client->request_body_read >= body_size_limit || client->con->error) {
return CLIENT_SLURP_ERROR;
}
}
@ -1177,10 +1177,17 @@ static void * _handle_connection(client_queue_t *queue)
client_queue_add(&_body_queue, node);
continue;
} else {
ICECAST_LOG_DEBUG("Success on fast lane");
ICECAST_LOG_DEBUG("Success on fast lane (client=%p)", client);
}
}
if (client->request_body_length != -1 && (size_t)client->request_body_length != client->request_body_read) {
ICECAST_LOG_DEBUG("Incomplete request, dropping client (client=%p)", client);
free_client_node(node);
client_destroy(client);
continue;
}
rawuri = httpp_getvar(parser, HTTPP_VAR_URI);
/* assign a port-based shoutcast mountpoint if required */