def serializeClient(self, client): return serialize_dict([ ('ON', client.name), ('BC', client.band), ('DS', client.description), ('NN', client.country), ('CT', client.city), ])
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), ]))