def handle_login(self, conn, addr): '''Handle a client connection's attempt to login''' received_data = conn.recv(1024) while received_data: credentials = DataManager.decode_object(received_data) logged_in_status = self.login_manager.login(credentials, addr) conn.send(DataManager.encode_object(logged_in_status)) if logged_in_status == LoginStatus.SUCCESS: # Client logged in - listen for requests from the client print(f'[{addr}, {credentials["username"]}]: Logged in.') self.handle_requests(conn, addr, credentials['username']) else: print(f'[{addr}, {credentials["username"]}]: Attempted login.') try: # Listen for more attempts from the client received_data = conn.recv(1024) except: # Connection has been closed due to logout received_data = None