From: rtrimana Date: Fri, 16 Jun 2017 22:29:00 +0000 (-0700) Subject: Checking in a missing patch for hostapd; this is the workaround for DHCPACK that... X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=806ac86633db46f02503b9e02a9e017eac9682ba;p=lede.git Checking in a missing patch for hostapd; this is the workaround for DHCPACK that's missing when hostapd runs with disable_dgaf and proxy_arp --- diff --git a/package/network/services/hostapd/patches/800-hostapd_disable_dgaf_multicast_fix.patch b/package/network/services/hostapd/patches/800-hostapd_disable_dgaf_multicast_fix.patch new file mode 100644 index 0000000000..e63d72c988 --- /dev/null +++ b/package/network/services/hostapd/patches/800-hostapd_disable_dgaf_multicast_fix.patch @@ -0,0 +1,34 @@ +--- a/src/ap/dhcp_snoop.c ++++ b/src/ap/dhcp_snoop.c +@@ -110,6 +110,15 @@ static void handle_dhcp(void *ctx, const + } + } + ++ if (hapd->conf->disable_dgaf && is_broadcast_ether_addr(buf)) { ++ for (sta = hapd->sta_list; sta; sta = sta->next) { ++ if (!(sta->flags & WLAN_STA_AUTHORIZED)) ++ continue; ++ x_snoop_mcast_to_ucast_convert_send(hapd, sta, ++ (u8 *) buf, len); ++ } ++ } ++ + if (msgtype == DHCPACK) { + if (b->your_ip == 0) + return; +@@ -145,15 +154,6 @@ static void handle_dhcp(void *ctx, const + } + sta->ipaddr = b->your_ip; + } +- +- if (hapd->conf->disable_dgaf && is_broadcast_ether_addr(buf)) { +- for (sta = hapd->sta_list; sta; sta = sta->next) { +- if (!(sta->flags & WLAN_STA_AUTHORIZED)) +- continue; +- x_snoop_mcast_to_ucast_convert_send(hapd, sta, +- (u8 *) buf, len); +- } +- } + } + +