fix
authorecdsa <ecdsa@github>
Sun, 10 Mar 2013 15:24:52 +0000 (16:24 +0100)
committerecdsa <ecdsa@github>
Sun, 10 Mar 2013 15:24:52 +0000 (16:24 +0100)
lib/interface.py

index 59f205a..eeca9a4 100644 (file)
@@ -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()