# HG changeset patch # User Kim Alvefur # Date 1731163351 -3600 # Node ID 850e4ade7a0162654998e4655b1ac055959b1024 # Parent f0b2c026e5420090ffb6984c733f82c3c38db7be 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. diff -r f0b2c026e542 -r 850e4ade7a01 net/server_epoll.lua --- 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