adminstream: fire disconnected event on lower layer disconnect
authorJonas Schäfer <jonas@wielicki.name>
Tue, 21 Dec 2021 21:23:01 +0100
changeset 12098 84fd6a79cda7
parent 12097 b446edb2a51e
child 12099 c1d2bc6603ae
adminstream: fire disconnected event on lower layer disconnect This may in theory cause multiple disconnect events for the adminstream client, if the only code using that wasn't calling os.exit right away. Hence, this should be a good enough partial fix for #1671. It is not a full fix, because the shell will only notice the disconnect after one has hit enter in the input; until then, it is stuck in a read() call to stdin and completely oblivious to the disconnect.
util/adminstream.lua
--- a/util/adminstream.lua	Tue Dec 21 21:38:44 2021 +0100
+++ b/util/adminstream.lua	Tue Dec 21 21:23:01 2021 +0100
@@ -318,6 +318,7 @@
 	function listeners.ondisconnect(conn, err) --luacheck: ignore 212/conn
 		client.log("info", "Admin client disconnected: %s", err or "connection closed");
 		client.conn = nil;
+		client.events.fire_event("disconnected");
 	end
 
 	function listeners.onreadtimeout(conn)