GitHub Action
commited on
Commit
·
5c7a720
1
Parent(s):
ca99925
Sync from GitHub with Git LFS
Browse files- agents/peer_sync.py +7 -5
agents/peer_sync.py
CHANGED
|
@@ -19,7 +19,7 @@ storage = Storage()
|
|
| 19 |
# Конфигурация
|
| 20 |
# ---------------------------
|
| 21 |
my_id = storage.get_config_value("agent_id")
|
| 22 |
-
my_pubkey = storage.get_config_value("
|
| 23 |
agent_name = storage.get_config_value("agent_name", "unknown")
|
| 24 |
|
| 25 |
local_addresses = storage.get_addresses("local")
|
|
@@ -182,7 +182,7 @@ def udp_discovery(sock, local_ports):
|
|
| 182 |
try:
|
| 183 |
if ":" not in dest: # IPv4
|
| 184 |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
| 185 |
-
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
| 186 |
else: # IPv6
|
| 187 |
s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
|
| 188 |
|
|
@@ -204,13 +204,15 @@ def udp_discovery(sock, local_ports):
|
|
| 204 |
buf = chunks_buffer.setdefault(addr, {"chunks": {}, "total": pkt["total"]})
|
| 205 |
buf["chunks"][pkt["chunk"]] = pkt["data"]
|
| 206 |
if len(buf["chunks"]) == buf["total"]:
|
| 207 |
-
full_msg_json = "".join(buf["chunks"][i] for i in
|
| 208 |
msg = json.loads(full_msg_json)
|
|
|
|
| 209 |
del chunks_buffer[addr]
|
| 210 |
else:
|
| 211 |
continue
|
| 212 |
else:
|
| 213 |
msg = pkt # старый формат
|
|
|
|
| 214 |
|
| 215 |
peer_id = msg.get("id")
|
| 216 |
if peer_id == my_id:
|
|
@@ -241,7 +243,7 @@ def udp_discovery(sock, local_ports):
|
|
| 241 |
source="discovery", status="online",
|
| 242 |
pubkey=pubkey, strict=False
|
| 243 |
)
|
| 244 |
-
print(f"[UDP Discovery] peer={peer_id} from {addr}")
|
| 245 |
except Exception as e:
|
| 246 |
print(f"[UDP Discovery] receive error: {e}")
|
| 247 |
except Exception as e:
|
|
@@ -282,6 +284,7 @@ def udp_discovery(sock, local_ports):
|
|
| 282 |
"addresses": local_addresses,
|
| 283 |
"pubkey": my_pubkey
|
| 284 |
}
|
|
|
|
| 285 |
|
| 286 |
for port in local_ports:
|
| 287 |
# IPv4 broadcast
|
|
@@ -290,7 +293,6 @@ def udp_discovery(sock, local_ports):
|
|
| 290 |
for a in addrs:
|
| 291 |
if "broadcast" in a:
|
| 292 |
send_discovery_packets(msg_dict, a["broadcast"], port)
|
| 293 |
-
# можно для проверки сразу и 255.255.255.255:
|
| 294 |
send_discovery_packets(msg_dict, "255.255.255.255", port)
|
| 295 |
|
| 296 |
# IPv6 multicast пока выключен для отладки
|
|
|
|
| 19 |
# Конфигурация
|
| 20 |
# ---------------------------
|
| 21 |
my_id = storage.get_config_value("agent_id")
|
| 22 |
+
my_pubkey = storage.get_config_value("pubkey")
|
| 23 |
agent_name = storage.get_config_value("agent_name", "unknown")
|
| 24 |
|
| 25 |
local_addresses = storage.get_addresses("local")
|
|
|
|
| 182 |
try:
|
| 183 |
if ":" not in dest: # IPv4
|
| 184 |
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
| 185 |
+
s.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
|
| 186 |
else: # IPv6
|
| 187 |
s = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
|
| 188 |
|
|
|
|
| 204 |
buf = chunks_buffer.setdefault(addr, {"chunks": {}, "total": pkt["total"]})
|
| 205 |
buf["chunks"][pkt["chunk"]] = pkt["data"]
|
| 206 |
if len(buf["chunks"]) == buf["total"]:
|
| 207 |
+
full_msg_json = "".join(buf["chunks"][i] for i in sorted(buf["chunks"]))
|
| 208 |
msg = json.loads(full_msg_json)
|
| 209 |
+
print(f"[UDP Discovery] received full msg (with pubkey={bool(msg.get('pubkey'))}) from {addr}")
|
| 210 |
del chunks_buffer[addr]
|
| 211 |
else:
|
| 212 |
continue
|
| 213 |
else:
|
| 214 |
msg = pkt # старый формат
|
| 215 |
+
print(f"[UDP Discovery] received short msg (with pubkey={bool(msg.get('pubkey'))}) from {addr}")
|
| 216 |
|
| 217 |
peer_id = msg.get("id")
|
| 218 |
if peer_id == my_id:
|
|
|
|
| 243 |
source="discovery", status="online",
|
| 244 |
pubkey=pubkey, strict=False
|
| 245 |
)
|
| 246 |
+
print(f"[UDP Discovery] peer={peer_id} from {addr} (pubkey={bool(pubkey)})")
|
| 247 |
except Exception as e:
|
| 248 |
print(f"[UDP Discovery] receive error: {e}")
|
| 249 |
except Exception as e:
|
|
|
|
| 284 |
"addresses": local_addresses,
|
| 285 |
"pubkey": my_pubkey
|
| 286 |
}
|
| 287 |
+
print(f"[UDP Discovery] sending msg (with pubkey={bool(my_pubkey)}): {msg_dict}")
|
| 288 |
|
| 289 |
for port in local_ports:
|
| 290 |
# IPv4 broadcast
|
|
|
|
| 293 |
for a in addrs:
|
| 294 |
if "broadcast" in a:
|
| 295 |
send_discovery_packets(msg_dict, a["broadcast"], port)
|
|
|
|
| 296 |
send_discovery_packets(msg_dict, "255.255.255.255", port)
|
| 297 |
|
| 298 |
# IPv6 multicast пока выключен для отладки
|