from datetime import datetime def store_signalpeer(conn, signalpeerkvstore): peer_addr = (conn._channel.stream.sock.getpeername()[0], conn.root.peer_port) signalpeer_key = f'{peer_addr[0]:{peer_addr[1]}}' if signalpeer_key not in signalpeerkvstore: signalpeerkvstore[signalpeer_key] = {'addr': peer_addr, 'seen': datetime.utcnow(), 'cname': conn.root.peer_cname} else: signalpeerkvstore[signalpeer_key]['seen'] = datetime.utcnow() if signalpeerkvstore[signalpeer_key]['cname'] != conn.root.peer_cname: signalpeerkvstore[signalpeer_key]['cname'] = conn.root.peer_cname def merge_signalpeers(signalpeers, signalpeerkvstore): new_keys = list(set(signalpeers.keys()) - set(signalpeerkvstore.keys())) for k in new_keys: signalpeerkvstore[k] = signalpeers[k]