aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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