X-Git-Url: http://gitweb.pimeys.fr/?p=NK2015_Client_Python_Alpha.git;a=blobdiff_plain;f=client.py;h=297e76d741a4179cafc3df4b18a4efb0ad454e24;hp=50da2402fc4a8b22c2c6b0625c6d79e8f0aaaca9;hb=fe716a175a98d4b569d8e6deb9a8bf0e98ef873f;hpb=6127ae01609030b226eacc3f1aa72ee0a817e99d diff --git a/client.py b/client.py index 50da240..297e76d 100755 --- 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: @@ -57,22 +64,22 @@ def checkidentity(a): raise KeyboardInterrupt("Imposteur !") def hello(socket,version): - socket.send('hello "%s"'%(version)) + socket.send('["hello", "%s"]' % (version)) return lit(a) def login(socket,user,mdp="",typ="bdd"): - if user in ["20-100","moibdd"]: - a.write('login ["20-100","plop","bdd",[["all"],["all"],true]]') + if user in ["20-100","moibdd","#1"]: + a.write('["login", ["#1","plop","bdd",[[],[],false]]]') elif user in ["vincent","moi"]: - a.write('login ["vincent","plop","special",["all"]]') + a.write('["login", ["vincent","plop","special",[]]]') elif user in ["toto"]: - a.write('login ["toto","plop","bdd",[["all"],["all"],true]]') + a.write('["login", ["toto","plop","bdd",[[],[],false]]]') else: - a.write('login ["%s","%s","%s",[["all"],["all"],true]]'%(user,mdp,typ)) + a.write('["login", ["%s","%s","%s",[[],[],false]]]'%(user,mdp,typ)) return lit(a) def search(socket,term): - a.write("search %s"%(term)) + a.write('["search", %s]' % (term)) return lit(a) def lit(socket): @@ -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 ?")