diff options
author | Kim Alvefur <zash@zash.se> | 2016-04-19 17:24:00 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2016-04-19 17:24:00 +0200 |
commit | 7b9a8755b70b1d1b594d367e0c29f776eb0b5063 (patch) | |
tree | a8258dafe945b61f20e60ca8b187fd47fcd12081 /net/server_event.lua | |
parent | ca0980462ee3be9d8a5eee965ec9cd5d4dbf14f1 (diff) | |
download | prosody-7b9a8755b70b1d1b594d367e0c29f776eb0b5063.tar.gz prosody-7b9a8755b70b1d1b594d367e0c29f776eb0b5063.zip |
net.server_event: Re-add write event if writebuffer is non-empty after write (eg due to writes from ondrain callback) (fixes #661)
Diffstat (limited to 'net/server_event.lua')
-rw-r--r-- | net/server_event.lua | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/server_event.lua b/net/server_event.lua index d505825d..1c6f1547 100644 --- a/net/server_event.lua +++ b/net/server_event.lua @@ -548,6 +548,10 @@ do elseif interface.eventreadtimeout then return EV_WRITE, EV_TIMEOUT end + if interface.writebuffer ~= 0 then + -- data possibly written from ondrain + return EV_WRITE, cfg.WRITE_TIMEOUT + end interface.eventwrite = nil return -1 elseif byte and (err == "timeout" or err == "wantwrite") then -- want write again |