Software /
code /
prosody
Changeset
13553:850e4ade7a01
net.server_epoll: Make running out of buffer space a fatal error
Prevent Bad Things from happening when the buffer gets full.
This of course opens up the possibility of intentionally killing
connections by sending much stuff, which need to be mitigated with rate
limits elsewhere.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 09 Nov 2024 15:42:31 +0100 |
parents | 13552:f0b2c026e542 |
children | 13554:902d25cd0557 |
files | net/server_epoll.lua |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/net/server_epoll.lua Sat Nov 09 00:37:15 2024 +0100 +++ b/net/server_epoll.lua Sat Nov 09 15:42:31 2024 +0100 @@ -612,6 +612,8 @@ -- Try to flush buffer to make room self:onwritable(); if not buffer:write(prev_buffer) then + self:on("disconnect", "no space left in buffer"); + self:destroy(); return false; end end @@ -622,6 +624,8 @@ end self:onwritable(); if not buffer:write(data) then + self:on("disconnect", "no space left in buffer"); + self:destroy(); return false; end end @@ -631,6 +635,8 @@ end self:onwritable(); if not buffer:write(data) then + self:on("disconnect", "no space left in buffer"); + self:destroy(); return false; end end