Skip to content

Commit 9f926c6

Browse files
authored
fix: allow for multiple discovery queries with REUSEPORT (#50)
* chore: reuse port for discovery util * chore: gitignore synapse_data folders * chore: revert discovery timeout
1 parent 1aba8b9 commit 9f926c6

2 files changed

Lines changed: 9 additions & 6 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,5 @@ config/
182182

183183
output_*.json
184184
*.jsonl
185+
186+
synapse_data*

synapse/utils/discover.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from dataclasses import dataclass
22
import time
33
import socket
4+
import sys
45

56

67
BROADCAST_PORT = 6470
7-
DISCOVERY_TIMEOUT = 10
8-
8+
DISCOVERY_TIMEOUT_SEC = 10
99

1010
@dataclass
1111
class DeviceInfo:
@@ -15,10 +15,11 @@ class DeviceInfo:
1515
name: str
1616
serial: str
1717

18-
19-
def discover_iter(socket_timeout_sec=1, discovery_timeout_sec=DISCOVERY_TIMEOUT):
18+
def discover_iter(socket_timeout_sec=1, discovery_timeout_sec=DISCOVERY_TIMEOUT_SEC):
2019
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
2120
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
21+
if sys.platform != 'win32':
22+
sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
2223
sock.settimeout(socket_timeout_sec)
2324
sock.bind(("", BROADCAST_PORT))
2425

@@ -28,7 +29,7 @@ def discover_iter(socket_timeout_sec=1, discovery_timeout_sec=DISCOVERY_TIMEOUT)
2829

2930
while True:
3031
now = time.time()
31-
if now - start_time > DISCOVERY_TIMEOUT:
32+
if now - start_time > discovery_timeout_sec:
3233
break
3334
try:
3435
data, server = sock.recvfrom(1024)
@@ -50,5 +51,5 @@ def discover_iter(socket_timeout_sec=1, discovery_timeout_sec=DISCOVERY_TIMEOUT)
5051
sock.close()
5152

5253

53-
def discover(timeout_sec=DISCOVERY_TIMEOUT):
54+
def discover(timeout_sec=DISCOVERY_TIMEOUT_SEC):
5455
return list(discover_iter(timeout_sec))

0 commit comments

Comments
 (0)