]> gitweb.pimeys.fr Git - NK2015_Client_Python_Alpha.git/commitdiff
full_read ne permettait plus de détecter un serveur down
authorVincent Le Gallic <legallic@crans.org>
Tue, 4 Sep 2012 08:20:35 +0000 (10:20 +0200)
committerVincent Le Gallic <legallic@crans.org>
Tue, 4 Sep 2012 08:20:35 +0000 (10:20 +0200)
client.py

index 672ef459abb27a0eb3768d125da87209add7cb09..3a722028d9eab00d3248a245b83f3f0a29ecd7fe 100755 (executable)
--- a/client.py
+++ b/client.py
@@ -19,15 +19,22 @@ from pprint import pprint
 sys.path.append(client_config.rsa_path)
 import monRSA
 
+class DeadServer(Exception):
+    pass
+
 def full_read(sock):
     """Lit sur la socket jusqu'à ce que l'output soit déJSON-izable"""
     output=""
+    i = 0
     while True:
         output+=sock.read()
+        i += 1
         try:
             return json.loads(output)
         except:
             pass
+        if i==10 and output=="":
+            raise DeadServer
 
 def connect(sock,where,port=None):
     if port==None:
@@ -84,9 +91,9 @@ def lit(socket):
           print obj["errmsg"]
           return obj["msg"]
     except ssl.SSLError:
-        return "Rien à lire"
-    except ValueError:
-        return "Serveur mort ?"
+        print "Rien à lire"
+    except DeadServer:
+        print "Serveur down ?"
 
 if __name__=="__main__":
     where=raw_input("quel serveur ?")