diff --git a/src/dpp.c b/src/dpp.c index 95c11f00..ac56e55d 100644 --- a/src/dpp.c +++ b/src/dpp.c @@ -3739,9 +3739,8 @@ static void dpp_create(struct netdev *netdev) dpp->key_len = l_ecc_curve_get_scalar_bytes(dpp->curve); dpp->nonce_len = dpp_nonce_len_from_key_len(dpp->key_len); dpp->max_roc = wiphy_get_max_roc_duration(wiphy_find_by_wdev(wdev_id)); - dpp->mcast_support = wiphy_has_ext_feature( - wiphy_find_by_wdev(dpp->wdev_id), - NL80211_EXT_FEATURE_MULTICAST_REGISTRATIONS); + dpp->mcast_support = wiphy_supports_multicast_rx( + wiphy_find_by_wdev(dpp->wdev_id)); l_ecdh_generate_key_pair(dpp->curve, &dpp->boot_private, &dpp->boot_public); @@ -4106,7 +4105,7 @@ static struct l_dbus_message *dpp_start_configurator_common( } else dpp->current_freq = bss->frequency; - dpp_add_frame_watches(dpp, responder); + dpp_add_frame_watches(dpp, responder && dpp->mcast_support); dpp->uri = dpp_generate_uri(dpp->own_asn1, dpp->own_asn1_len, 2, netdev_get_address(dpp->netdev), @@ -4535,7 +4534,7 @@ static struct l_dbus_message *dpp_start_pkex_configurator(struct dpp_sm *dpp, dpp->config = dpp_configuration_new(network_get_settings(network), network_get_ssid(network), hs->akm_suite); - dpp_add_frame_watches(dpp, true); + dpp_add_frame_watches(dpp, dpp->mcast_support); dpp_reset_protocol_timer(dpp, DPP_PKEX_PROTO_TIMEOUT); dpp_property_changed_notify(dpp);