diff options
author | Kim Alvefur <zash@zash.se> | 2019-03-28 17:28:20 +0100 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2019-03-28 17:28:20 +0100 |
commit | e1d1f3d4f718e6f71676112877d7f8fe24aec12d (patch) | |
tree | 4467e4b07b12116a8f03ecc024c9f8a4c53967f4 /net | |
parent | 36ad587977a55c0042e6aae283b10acbb50a87df (diff) | |
parent | c422e8f13401e50cb13384227f97df3ad55605fd (diff) | |
download | prosody-e1d1f3d4f718e6f71676112877d7f8fe24aec12d.tar.gz prosody-e1d1f3d4f718e6f71676112877d7f8fe24aec12d.zip |
Merge 0.11->trunk
Diffstat (limited to 'net')
-rw-r--r-- | net/server_epoll.lua | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/net/server_epoll.lua b/net/server_epoll.lua index 4037f7ab..be0a5b6a 100644 --- a/net/server_epoll.lua +++ b/net/server_epoll.lua @@ -340,22 +340,25 @@ function interface:onreadable() self:onconnect(); self:on("incoming", data); else - if partial and partial ~= "" then - self:onconnect(); - self:on("incoming", partial, err); - end if err == "wantread" then self:set(true, nil); + err = "timeout"; elseif err == "wantwrite" then self:set(nil, true); - elseif err ~= "timeout" then + err = "timeout"; + end + if partial and partial ~= "" then + self:onconnect(); + self:on("incoming", partial, err); + end + if err ~= "timeout" then self:on("disconnect", err); self:destroy() return; end end if not self.conn then return; end - if self.conn:dirty() then + if self._wantread and self.conn:dirty() then self:setreadtimeout(false); self:pausefor(cfg.read_retry_delay); else |