diff --git a/libraries/SocketWrapper/SocketHelpers.cpp b/libraries/SocketWrapper/SocketHelpers.cpp index 4938e105..fe85b318 100644 --- a/libraries/SocketWrapper/SocketHelpers.cpp +++ b/libraries/SocketWrapper/SocketHelpers.cpp @@ -148,8 +148,11 @@ void NetworkInterface::setMACAddress(const uint8_t *mac) { int NetworkInterface::begin(bool blocking, uint64_t additional_event_mask) { dhcp(); - int ret = net_mgmt_event_wait_on_iface(netif, NET_EVENT_IPV4_ADDR_ADD | additional_event_mask, - NULL, NULL, NULL, blocking ? K_FOREVER : K_SECONDS(1)); + // FIXME: additional_event_mask cannot be ORed here due to how Zephyr + // events are handled internally. Must be reworked to wait on a sem + // and register multiple event masks with event_handler instead. + int ret = net_mgmt_event_wait_on_iface(netif, NET_EVENT_IPV4_ADDR_ADD, NULL, NULL, NULL, + blocking ? K_FOREVER : K_SECONDS(1)); return (ret == 0) ? 1 : 0; }