diff options
author | Kim Alvefur <zash@zash.se> | 2018-10-12 03:21:11 +0200 |
---|---|---|
committer | Kim Alvefur <zash@zash.se> | 2018-10-12 03:21:11 +0200 |
commit | 906bc714b636f475caf7960922ba75c75a0395e7 (patch) | |
tree | b66b4c6be21c25064428da381dc42381fbee012c | |
parent | 56c2772487be14a1dde2d2da7929725d8035f5fb (diff) | |
download | prosody-906bc714b636f475caf7960922ba75c75a0395e7.tar.gz prosody-906bc714b636f475caf7960922ba75c75a0395e7.zip |
net.server_epoll: Ignore ENOENT when deregitering socket
It should not really happen
-rw-r--r-- | net/server_epoll.lua | 3 | ||||
-rw-r--r-- | util-src/poll.c | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/net/server_epoll.lua b/net/server_epoll.lua index fc939675..cb83c8c3 100644 --- a/net/server_epoll.lua +++ b/net/server_epoll.lua @@ -27,6 +27,7 @@ local _SOCKETINVALID = socket._SOCKETINVALID or -1; local poller = require "util.poll" local EEXIST = poller.EEXIST; +local ENOENT = poller.ENOENT; local poll = assert(poller.new()); @@ -310,7 +311,7 @@ function interface:del() return nil, "unregistered fd"; end local ok, err, errno = poll:del(fd); - if not ok then + if not ok and errno ~= ENOENT then log("error", "Could not unregister %s: %s(%d)", self, err, errno); return ok, err; end diff --git a/util-src/poll.c b/util-src/poll.c index 58f29041..e5b5f70c 100644 --- a/util-src/poll.c +++ b/util-src/poll.c @@ -452,7 +452,7 @@ int luaopen_util_poll(lua_State *L) { #endif } - lua_createtable(L, 0, 2); + lua_createtable(L, 0, 3); { lua_pushcfunction(L, Lnew); lua_setfield(L, -2, "new"); @@ -461,6 +461,7 @@ int luaopen_util_poll(lua_State *L) { lua_setfield(L, -2, #named_error); push_errno(EEXIST); + push_errno(ENOENT); } return 1; |