net.server_epoll: Handle LuaSec wantread/wantwrite conditions before callbacks (fixes #1333)

This prevents the :set(true) call from resuming a connection that was
paused in the onincoming callback.
remotes/origin/0.11
Kim Alvefur 7 years ago
parent b6cff0ba5e
commit e34e8e845d
  1. 13
      net/server_epoll.lua

@ -355,15 +355,18 @@ 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;

Loading…
Cancel
Save