aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2018-09-26 14:25:59 +0200
committerKim Alvefur <zash@zash.se>2018-09-26 14:25:59 +0200
commit437fd63c6ff097d6a09d162ef9b6a104d73fa723 (patch)
treeaaf5dc7cdf93938b5caf6c2ef7451caf7cf0ae13
parent341cb9cc54b2555e9313f7613e7f389c1352bc51 (diff)
downloadprosody-437fd63c6ff097d6a09d162ef9b6a104d73fa723.tar.gz
prosody-437fd63c6ff097d6a09d162ef9b6a104d73fa723.zip
net.server: Call a 'onattach' callback when replacing listeners
-rw-r--r--net/server_epoll.lua1
-rw-r--r--net/server_event.lua4
-rw-r--r--net/server_select.lua3
3 files changed, 8 insertions, 0 deletions
diff --git a/net/server_epoll.lua b/net/server_epoll.lua
index 04922f6e..23b3f376 100644
--- a/net/server_epoll.lua
+++ b/net/server_epoll.lua
@@ -139,6 +139,7 @@ end
function interface:setlistener(listeners)
self:on("detach");
self.listeners = listeners;
+ self:on("attach");
end
-- Call a listener callback
diff --git a/net/server_event.lua b/net/server_event.lua
index 6daf0944..8ee2f28d 100644
--- a/net/server_event.lua
+++ b/net/server_event.lua
@@ -424,7 +424,9 @@ function interface_mt:setlistener(listener)
self.onreadtimeout = listener.onreadtimeout;
self.onstatus = listener.onstatus;
self.ondetach = listener.ondetach;
+ self.onattach = listener.onattach;
self.ondrain = listener.ondrain;
+ self:onattach();
end
-- Stub handlers
@@ -446,6 +448,8 @@ function interface_mt:ondrain()
end
function interface_mt:ondetach()
end
+function interface_mt:onattach()
+end
function interface_mt:onstatus()
end
diff --git a/net/server_select.lua b/net/server_select.lua
index 2cd095fe..1b535bb7 100644
--- a/net/server_select.lua
+++ b/net/server_select.lua
@@ -331,6 +331,9 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
drain = listeners.ondrain
handler.onreadtimeout = listeners.onreadtimeout
detach = listeners.ondetach
+ if listeners.onattach then
+ listeners.onattach(self)
+ end
end
handler.getstats = function( )
return readtraffic, sendtraffic