Comparison

plugins/mod_smacks.lua @ 13572:d9965707f7dc

mod_smacks: Prevent traceback on attempting to resume destroyed session This shouldn't be possible, but seems to happen anyway after net.server somehow calling the close handler twice, which also should not happen.
author Kim Alvefur <zash@zash.se>
date Tue, 19 Nov 2024 00:53:01 +0100
parent 13544:0aae6de9d323
child 13573:9277fc78fe39
comparison
equal deleted inserted replaced
13571:ca041359c045 13572:d9965707f7dc
585 return nil, enable_errors.new("already_bound"); 585 return nil, enable_errors.new("already_bound");
586 end 586 end
587 587
588 local id = stanza.attr.previd; 588 local id = stanza.attr.previd;
589 local original_session = session_registry[registry_key(session, id)]; 589 local original_session = session_registry[registry_key(session, id)];
590 if original_session.destroyed then
591 original_session.log("error", "Tried to resume a destroyed session. This should not happen! %s", debug.traceback());
592 session_registry[registry_key(session, id)] = nil;
593 original_session = nil;
594 end
590 if not original_session then 595 if not original_session then
591 local old_session = old_session_registry:get(session.username, id); 596 local old_session = old_session_registry:get(session.username, id);
592 if old_session then 597 if old_session then
593 session.log("debug", "Tried to resume old expired session with id %s", id); 598 session.log("debug", "Tried to resume old expired session with id %s", id);
594 clear_old_session(session, id); 599 clear_old_session(session, id);