From 22c464e09255dde2f8d471f0b54dd400da124b08 Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Mon, 6 Mar 2023 16:49:03 -0500 Subject: [PATCH] Only add self to collective if self not yet in collective Previously, it was safe to just do all the time, but now it may lose the role. --- confluent_server/confluent/collective/manager.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/confluent_server/confluent/collective/manager.py b/confluent_server/confluent/collective/manager.py index 7b369ff5..3549a9e2 100644 --- a/confluent_server/confluent/collective/manager.py +++ b/confluent_server/confluent/collective/manager.py @@ -416,8 +416,10 @@ def handle_connection(connection, cert, request, local=False): myrsp = base64.b64encode(myrsp) fprint = util.get_fingerprint(cert) myfprint = util.get_fingerprint(mycert) - cfm.add_collective_member(get_myname(), - connection.getsockname()[0], myfprint) + iam = cfm.get_collective_member(get_myname()) + if not iam: + cfm.add_collective_member(get_myname(), + connection.getsockname()[0], myfprint) cfm.add_collective_member(request['name'], connection.getpeername()[0], fprint, role) myleader = get_leader(connection)