Checking in a missing patch for hostapd; this is the workaround for DHCPACK that...
authorrtrimana <rtrimana@uci.edu>
Fri, 16 Jun 2017 22:29:00 +0000 (15:29 -0700)
committerrtrimana <rtrimana@uci.edu>
Fri, 16 Jun 2017 22:29:00 +0000 (15:29 -0700)
package/network/services/hostapd/patches/800-hostapd_disable_dgaf_multicast_fix.patch [new file with mode: 0644]

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 (file)
index 0000000..e63d72c
--- /dev/null
@@ -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);
+-              }
+-      }
+ }