MCPcopy
hub / github.com/pallets/werkzeug / _sync_server_browser

Method _sync_server_browser

examples/cupoftee/network.py:45–66  ·  view source on GitHub ↗
(self, addr, to_delete)

Source from the content-addressed store, hash-verified

43 self.cup.db.sync()
44
45 def _sync_server_browser(self, addr, to_delete):
46 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
47 s.settimeout(5)
48 s.sendto(b"\x20\x00\x00\x00\x00\x48\xff\xff\xff\xffreqt", addr)
49 data = s.recvfrom(1024)[0][14:]
50 s.close()
51
52 for n in range(0, len(data) // 6):
53 addr = (
54 ".".join(map(str, map(ord, data[n * 6 : n * 6 + 4]))),
55 ord(data[n * 6 + 5]) * 256 + ord(data[n * 6 + 4]),
56 )
57 server_id = f"{addr[0]}:{addr[1]}"
58 if server_id in self.servers:
59 if not self.servers[server_id].sync():
60 continue
61 else:
62 try:
63 self.servers[server_id] = Server(addr, server_id)
64 except ServerError:
65 pass
66 to_delete.discard(server_id)
67
68
69class Server(Syncable):

Callers 1

_syncMethod · 0.95

Calls 4

discardMethod · 0.80
ServerClass · 0.70
closeMethod · 0.45
syncMethod · 0.45

Tested by

no test coverage detected