fix: socket sideband UDP 5602 en dual-stack IPv4+IPv6
Le socket AF_INET seul ne recevait pas les stats Pi Zero envoyées en IPv6 via Mycelium. Passage en AF_INET6 + IPV6_V6ONLY=0 pour accepter les deux familles sur un seul socket (Freebox IPv4 en dev, Mycelium IPv6 en prod).
This commit is contained in:
@ -63,10 +63,13 @@ _pi_stats: dict | None = None
|
||||
def sideband_loop() -> None:
|
||||
"""Écoute UDP 5602, stocke le dernier JSON Pi Zero dans _pi_stats."""
|
||||
global _pi_stats
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
# AF_INET6 + V6ONLY=0 : socket dual-stack qui accepte l'IPv4 (Freebox, dev)
|
||||
# et l'IPv6 (Mycelium, prod) sur le même port sans dupliquer le socket.
|
||||
sock = socket.socket(socket.AF_INET6, socket.SOCK_DGRAM)
|
||||
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
|
||||
sock.setsockopt(socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, 0)
|
||||
sock.settimeout(1.0)
|
||||
sock.bind(("0.0.0.0", SIDEBAND_PORT))
|
||||
sock.bind(("::", SIDEBAND_PORT))
|
||||
print(f"[SIDEBAND] Écoute UDP sur port {SIDEBAND_PORT}")
|
||||
while _running:
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user