Skip to content

Commit 57e603c

Browse files
committed
Skip socket creation if add_multicast_member fails (windows)
Fixes a regression caused by refactoring error in #331
1 parent 203ec2e commit 57e603c

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

zeroconf/__init__.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2255,7 +2255,7 @@ def new_socket(
22552255
def add_multicast_member(
22562256
listen_socket: socket.socket,
22572257
interface: Union[str, Tuple[Tuple[str, int, int], int]],
2258-
) -> None:
2258+
) -> bool:
22592259
# This is based on assumptions in normalize_interface_choice
22602260
is_v6 = isinstance(interface, tuple)
22612261
err_einval = {errno.EINVAL}
@@ -2279,19 +2279,20 @@ def add_multicast_member(
22792279
'it is expected to happen on some systems',
22802280
interface,
22812281
)
2282-
return None
2282+
return False
22832283
elif _errno == errno.EADDRNOTAVAIL:
22842284
log.info(
22852285
'Address not available when adding %s to multicast '
22862286
'group, it is expected to happen on some systems',
22872287
interface,
22882288
)
2289-
return None
2289+
return False
22902290
elif _errno in err_einval:
22912291
log.info('Interface of %s does not support multicast, ' 'it is expected in WSL', interface)
2292-
return None
2292+
return False
22932293
else:
22942294
raise
2295+
return True
22952296

22962297

22972298
def new_respond_socket(
@@ -2339,8 +2340,10 @@ def create_sockets(
23392340

23402341
for i in normalized_interfaces:
23412342
if not unicast:
2342-
add_multicast_member(cast(socket.socket, listen_socket), i)
2343-
respond_socket = new_respond_socket(i, apple_p2p=apple_p2p)
2343+
if add_multicast_member(cast(socket.socket, listen_socket), i):
2344+
respond_socket = new_respond_socket(i, apple_p2p=apple_p2p)
2345+
else:
2346+
respond_socket = None
23442347
else:
23452348
respond_socket = new_socket(
23462349
port=0,

0 commit comments

Comments
 (0)