11from socket import socket , AF_INET , SOCK_STREAM
2- from threading import Thread
2+ from threading import Thread , Lock
33from utils import readjson , writejson
44
5+ public_keys_mutex = Lock ()
6+
57def handle_request (socket_client ):
8+ global public_keys_mutex
69 login = socket_client .recv (2048 ).decode ()
10+ if (login == '' ): # DNS check
11+ socket_client .close ()
12+ return
13+
714 socket_client .send ("ok" .encode ())
815
916 public_key = socket_client .recv (2048 ).decode ()
10- socket_client .send ("ok" .encode ())
1117
12- socket_client .close ()
18+ with public_keys_mutex :
19+ keys = readjson ("public_keys" ) or dict ()
20+ keys [login ] = [public_key , False ]
21+ writejson (keys , "public_keys" )
22+ keys = readjson ("public_keys" )
1323
14- keys = readjson ( "public_keys" ) or dict ( )
15- keys [ login ] = [ public_key , False ]
16- writejson ( keys , "public_keys" )
24+ assert ( keys [ login ] == [ public_key , False ] )
25+ socket_client . send ( "ok" . encode ())
26+ socket_client . close ( )
1727
1828
1929def auth_server ():
@@ -24,7 +34,7 @@ def auth_server():
2434
2535 while 1 :
2636 socket_client , addr_client = server_socket .accept ()
27- print (f"Established connection with { addr_client } " )
37+ # print(f"Established connection with {addr_client}")
2838 Thread (target = handle_request , args = (socket_client ,)).start ()
2939
3040if __name__ == '__main__' :
0 commit comments