diff --git a/lib/interface.py b/lib/interface.py index 59f205a6..eeca9a4a 100644 --- a/lib/interface.py +++ b/lib/interface.py @@ -470,6 +470,9 @@ class Interface(threading.Thread): if message not in self.subscriptions[channel]: self.subscriptions[channel].append(message) + if not self.is_connected: + return + if self.protocol in 'st': with self.lock: out = self.send_tcp(messages, channel) @@ -516,14 +519,14 @@ class Interface(threading.Thread): print "changing server:", server, proxy self.server = server self.proxy = proxy - if self.protocol in 'st' and self.s: + if self.is_connected and self.protocol in 'st' and self.s: self.s.shutdown(socket.SHUT_RDWR) self.s.close() self.is_connected = False # this exits the polling loop self.trigger_callback('disconnecting') # for actively disconnecting def stop(self): - if self.protocol in 'st' and self.s: + if self.is_connected and self.protocol in 'st' and self.s: self.s.shutdown(socket.SHUT_RDWR) self.s.close()