From 568bdd9cb31b3e2ee98fc945f3066b9fbdee3130 Mon Sep 17 00:00:00 2001 From: Nicolas Jouanin Date: Sun, 9 Aug 2015 23:00:30 +0200 Subject: [PATCH] Fix client session initialisation --- hbmqtt/broker.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/hbmqtt/broker.py b/hbmqtt/broker.py index d591aad..83de39e 100644 --- a/hbmqtt/broker.py +++ b/hbmqtt/broker.py @@ -296,22 +296,25 @@ class Broker: client_session = None self.logger.debug("Clean session={0}".format(connect.variable_header.clean_session_flag)) self.logger.debug("known sessions={0}".format(self._sessions)) + client_id = connect.payload.client_id if connect.variable_header.clean_session_flag: - client_id = connect.payload.client_id + # Delete existing session and create a new one if client_id is not None: self.delete_session(client_id) client_session = Session() client_session.parent = 0 + client_session.client_id = client_id self._sessions[client_id] = client_session else: # Get session from cache - client_id = connect.payload.client_id if client_id in self._sessions: self.logger.debug("Found old session %s" % repr(self._sessions[client_id])) client_session = self._sessions[client_id] client_session.parent = 1 else: client_session = Session() + client_session.client_id = client_id + self._sessions[client_id] = client_session client_session.parent = 0 if client_session.client_id is None: