From 29f51d7e6dd71d1a702410cf24ea59edd7e5afcd Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Sat, 16 May 2020 20:46:12 +0200
Subject: mod_admin_telnet: Update existing sessions on reload

This removes the need to disconnect and reconnect to the telnet console
for changes to take effect.
---
 plugins/mod_admin_telnet.lua | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'plugins')

diff --git a/plugins/mod_admin_telnet.lua b/plugins/mod_admin_telnet.lua
index 3014517c..a082a851 100644
--- a/plugins/mod_admin_telnet.lua
+++ b/plugins/mod_admin_telnet.lua
@@ -161,6 +161,20 @@ end
 
 local sessions = {};
 
+function module.save()
+	return { sessions = sessions }
+end
+
+function module.restore(data)
+	if data.sessions then
+		for conn in pairs(data.sessions) do
+			conn:setlistener(console_listener);
+			local session = console:new_session(conn);
+			sessions[conn] = session;
+		end
+	end
+end
+
 function console_listener.onconnect(conn)
 	-- Handle new connection
 	local session = console:new_session(conn);
-- 
cgit v1.2.3