mirror of
https://github.com/me-no-dev/ESPAsyncWebServer.git
synced 2026-01-26 08:42:19 +01:00
AsyncEvents/ServerSideEvents: prevent internal DOS by prevent overflowing messageQueue (#621)
* Prevent tcp/wifi DOS lockup by preventing number of messages in queue, drop otherwise * Define (renamed) MAX_SSE_Clients
This commit is contained in:
@@ -184,10 +184,14 @@ void AsyncEventSourceClient::_queueMessage(AsyncEventSourceMessage *dataMessage)
|
||||
delete dataMessage;
|
||||
return;
|
||||
}
|
||||
|
||||
_messageQueue.add(dataMessage);
|
||||
|
||||
_runQueue();
|
||||
if(_messageQueue.length() >= SSE_MAX_QUEUED_MESSAGES){
|
||||
ets_printf("ERROR: Too many messages queued\n");
|
||||
delete dataMessage;
|
||||
} else {
|
||||
_messageQueue.add(dataMessage);
|
||||
}
|
||||
if(_client->canSend())
|
||||
_runQueue();
|
||||
}
|
||||
|
||||
void AsyncEventSourceClient::_onAck(size_t len, uint32_t time){
|
||||
|
||||
Reference in New Issue
Block a user