diff --git a/src/commands/default/general.py b/src/commands/default/general.py index 79f874bb82..d2614309b2 100644 --- a/src/commands/default/general.py +++ b/src/commands/default/general.py @@ -408,7 +408,7 @@ class CmdWho(MuxCommand): table[0].append(plr_pobject.name[:25]) table[1].append(utils.time_format(delta_conn, 0)) table[2].append(utils.time_format(delta_cmd, 1)) - table[3].append(plr_pobject.location.id) + table[3].append(plr_pobject.location and plr_pobject.location.id or "None") table[4].append(session.cmd_total) table[5].append(session.address[0]) else: diff --git a/src/server/sessionhandler.py b/src/server/sessionhandler.py index bba1607d22..562f977e32 100644 --- a/src/server/sessionhandler.py +++ b/src/server/sessionhandler.py @@ -379,6 +379,9 @@ class PortalSessionHandler(SessionHandler): session = self.sessions.get(sessid, None) if session: session.disconnect(reason) + if sessid in self.sessions: + # in case sess.disconnect doesn't delete it + del self.sessions[sessid] del session def server_disconnect_all(self, reason=""): @@ -388,7 +391,7 @@ class PortalSessionHandler(SessionHandler): for session in self.sessions.values(): session.disconnect(reason) del session - + self.sessions = {} def count_loggedin(self, include_unloggedin=False): """