end
end
- function destroy_session(session)
+local function null_data_handler(conn, data) log("debug", "Discarding data from destroyed s2s session: %s", data); end
+
+ function destroy_session(session, reason)
(session.log or log)("info", "Destroying "..tostring(session.direction).." session "..tostring(session.from_host).."->"..tostring(session.to_host));
if session.direction == "outgoing" then
end
end
(session.log or log)("info", "s2s disconnected: %s->%s (%s)", tostring(session.from_host), tostring(session.to_host), tostring(err));
- s2s_destroy_session(session);
+ s2s_destroy_session(session, err);
sessions[conn] = nil;
session = nil;
- collectgarbage("collect");
end
end
if type(port) ~= "number" then
log("error", "Non-numeric "..option.."_ports: "..tostring(port));
else
- cl.start(listener, {
+ local ok, err = cl.start(listener, {
ssl = conntype ~= "tcp" and global_ssl_ctx,
port = port,
- interface = config.get("*", "core", option.."_interface")
- or cl.get(listener).default_interface
+ interface = (option and config.get("*", "core", option.."_interface"))
+ or cl.get(listener).default_interface
or config.get("*", "core", "interface"),
type = conntype
});