コード例 #1
0
ファイル: protocol.py プロジェクト: george-hopkins/frn-py
 def serializeClient(self, client):
     return serialize_dict([
         ('ON', client.name),
         ('BC', client.band),
         ('DS', client.description),
         ('NN', client.country),
         ('CT', client.city),
     ])
コード例 #2
0
ファイル: protocol.py プロジェクト: george-hopkins/frn-py
 def handleServerConnect(self, args):
     server = Server.from_dict(args)
     result = -10
     challenge = ''
     if server.version != SERVER_VERSION:
         result = -6
     else:
         try:
             self.backend.server_connect(server)
             result = 0
         except InvalidCredentials:
             result = -4
         except ServerAddressInUse:
             result = -8
         except ServerInaccessible:
             result = -5
         except AlreadyLoggedIn:
             result = -9
         except AccessDenied:
             result = -7
     if result == 0:
         challenge = generate_challenge()
         passcode = solve_challenge(challenge)
         self.server = server
         self.deregisterCommands()
         self.registerCommand(str(passcode), self.handlePasscode)
     # 0: OK, -1: error, -2: busy, -3: communication error, -4: wrong credentials, -5: not accessible
     # -6: server version too old, -7: access denied, -8: address occupied, -9: same credentials online
     # -10...: unknown error
     self.sendLine(serialize_dict([
         ('SV', SERVER_VERSION),
         ('CV', CLIENT_VERSION),
         ('MC', VERSION),
         ('AL', result),
         ('KP', challenge),
     ]))