aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/modulemanager.lua4
-rw-r--r--net/adns.lua14
-rw-r--r--net/server_event.lua2
3 files changed, 11 insertions, 9 deletions
diff --git a/core/modulemanager.lua b/core/modulemanager.lua
index 6b2260f5..1174352b 100644
--- a/core/modulemanager.lua
+++ b/core/modulemanager.lua
@@ -158,7 +158,7 @@ function load(host, module_name, config)
log("error", "Error initializing module '%s' on '%s': %s", module_name, host, err or "nil");
end
if success then
- hosts[host].events.fire_event("module-loaded", { module = module_name, host = host });
+ (hosts[api_instance.host] or prosody).events.fire_event("module-loaded", { module = module_name, host = host });
return true;
else -- load failed, unloading
unload(api_instance.host, module_name);
@@ -210,7 +210,7 @@ function unload(host, name, ...)
end
end
modulemap[host][name] = nil;
- hosts[host].events.fire_event("module-unloaded", { module = name, host = host });
+ (hosts[host] or prosody).events.fire_event("module-unloaded", { module = name, host = host });
return true;
end
diff --git a/net/adns.lua b/net/adns.lua
index d1876b0f..0121881a 100644
--- a/net/adns.lua
+++ b/net/adns.lua
@@ -54,13 +54,15 @@ function new_async_socket(sock, resolver)
end
end
function listener.ondisconnect(conn, err)
- log("warn", "DNS socket for %s disconnected: %s", peername, err);
- local servers = resolver.server;
- if resolver.socketset[conn] == resolver.best_server and resolver.best_server == #servers then
- log("error", "Exhausted all %d configured DNS servers, next lookup will try %s again", #servers, servers[1]);
- end
+ if err then
+ log("warn", "DNS socket for %s disconnected: %s", peername, err);
+ local servers = resolver.server;
+ if resolver.socketset[conn] == resolver.best_server and resolver.best_server == #servers then
+ log("error", "Exhausted all %d configured DNS servers, next lookup will try %s again", #servers, servers[1]);
+ end
- resolver:servfail(conn); -- Let the magic commence
+ resolver:servfail(conn); -- Let the magic commence
+ end
end
handler = server.wrapclient(sock, "dns", 53, listener);
if not handler then
diff --git a/net/server_event.lua b/net/server_event.lua
index 610c2e7a..3456fb9e 100644
--- a/net/server_event.lua
+++ b/net/server_event.lua
@@ -262,7 +262,7 @@ do
_ = self.eventsession and self.eventsession:close( )
_ = self.eventwritetimeout and self.eventwritetimeout:close( )
_ = self.eventreadtimeout and self.eventreadtimeout:close( )
- _ = self.ondisconnect and self:ondisconnect( self.fatalerror ) -- call ondisconnect listener (wont be the case if handshake failed on connect)
+ _ = self.ondisconnect and self:ondisconnect( self.fatalerror ~= "client to close" and self.fatalerror) -- call ondisconnect listener (wont be the case if handshake failed on connect)
_ = self.conn and self.conn:close( ) -- close connection, must also be called outside of any socket registered events!
_ = self._server and self._server:counter(-1);
self.eventread, self.eventwrite = nil, nil