diff --git a/server.py b/server.py index c1bc4775804f459cf0e9898ddf96dfae2ca44848..9e3afad86f87003921c46a353482dc495dd62653 100644 --- a/server.py +++ b/server.py @@ -82,26 +82,25 @@ def start_election(queue, shared_data): while time.time() < timeout: try: message = queue.get(timeout=1) #waits 1 sec for a message - if "START_ELECTION" in message: + if shared_data['server_id']==sender_uuid: + continue + elif "START_ELECTION" in message: sender_uuid = message.split(": ")[1] active_servers[sender_uuid] = time.time() print(f"Received UUID for election: {sender_uuid}") ################dumblogic###onlyworkswith2servers################################ - if shared_data['server_id']==sender_uuid: - continue - else: - if sender_uuid > highest_id: + if sender_uuid > highest_id: highest_id = sender_uuid print(f"Received higher ID {sender_uuid}, forwarding...") broadcast(f"START_ELECTION: {sender_uuid}") - elif sender_uuid == highest_id: + elif sender_uuid == highest_id: shared_data['current_leader'] = sender_uuid print(f"(sender) Leader elected: {shared_data['current_leader']}") broadcast(f"LEADER: {shared_data['current_leader']}") - else: + else: shared_data['current_leader'] = shared_data['server_id'] print(f"(official, its me) Leader elected: {shared_data['current_leader']}") broadcast(f"LEADER: {shared_data['current_leader']}")