]> gitweb.pimeys.fr Git - NK2015_Client_Python_Alpha.git/blobdiff - client.py
J'ai rendu la lecture plus propre depuis la modif avec les retcodes et errmsg
[NK2015_Client_Python_Alpha.git] / client.py
index 65a62a140d7e557b50291664dc5e8592526985db..407f55fb202bfc6f76e59d83ab9279998b07fcc1 100755 (executable)
--- a/client.py
+++ b/client.py
@@ -19,12 +19,13 @@ from pprint import pprint
 sys.path.append(client_config.rsa_path)
 import monRSA
 
-def connect(sock,where="ici"):
-    port=client_config.port
-    ip={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org"}[where]
+def connect(sock,where="cerebro",port=None):
+    if port==None:
+        port=client_config.port
+    ip={"ici":"localhost","vent":"vent.crans.org","eva":"eva.crans.org","cerebro":"cerebro.crans.org"}[where]
     sock.connect((ip,port))
-    return ssl.wrap_socket(sock,ca_certs=client_config.ca_certfile,
-              cert_reqs=ssl.CERT_OPTIONAL,ciphers="AES256-SHA")
+    return ssl.wrap_socket(sock,ca_certs=client_config.ca_certfile)
+#              cert_reqs=ssl.CERT_NONE,ciphers="AES256-SHA")
 
 def checkidentity(a):
     c=a.getpeercert()
@@ -44,7 +45,7 @@ def checkidentity(a):
 
 def hello(socket,version):
     socket.send('hello "%s"'%(version))
-    return json.loads(a.read())
+    return lit(a)
 
 def login(socket,user,mdp="",typ="bdd"):
     if user in ["20-100","moibdd"]:
@@ -53,27 +54,25 @@ def login(socket,user,mdp="",typ="bdd"):
         a.write('login ["vincent","mdp","special"]')
     else:
         a.write('login ["%s","%s","%s"]'%(user,mdp,typ))
-    return json.loads(a.read())
+    return lit(a)
     
 def search(socket,term):
     a.write("search %s"%(term))
     return json.loads(a.read())
 
-def lit(socket,noprint=False):
+def lit(socket):
     try:
         t=a.read()
-        if noprint:
-            return json.loads(t)
+        obj=json.loads(t)
+        if obj["retcode"]==0:
+          return obj['msg']
         else:
-            obj=json.loads(t)
-            if type(obj)==unicode:
-              print obj
-            else:
-              pprint(obj)
+          print obj["errmsg"]
+          return obj["msg"]
     except ssl.SSLError:
-        print "Rien à lire"
+        return "Rien à lire"
     except ValueError:
-        print "Serveur mort ?"
+        return "Serveur mort ?"
 
 def challenge(a):
     _,pub=monRSA.litcles(None,client_config.server_rsa_pub_key)
@@ -92,10 +91,12 @@ def challenge(a):
         print "Imposteur !"
     
 if __name__=="__main__":
+    where=raw_input("quel serveur ?")
+    #port=int(raw_input("port ? "))
     a=socket.socket()
-    a=connect(a)
-    a.settimeout(0.5)
-    checkidentity(a)
+    a=connect(a,where)
+    a.settimeout(2)
+    #checkidentity(a)
     print hello(a,"Python Client alpha")
     print login(a,"20-100","mdp")
     print "Socket créée dans la variable \"a\""