X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fsvn-archive%2Farchive.git;a=blobdiff_plain;f=package%2Fhostapd%2Fpatches%2F453-ap_sta_support.patch;h=4b6c0f1646d74fa16a24b10996d1eec037c63077;hp=68f0e44e71aea8859983bf0f83146e42709f11b0;hb=792a557801636eaf09917926949e7618e9592be6;hpb=95d9a11312045dce7febde18154807fd233befb2 diff --git a/package/hostapd/patches/453-ap_sta_support.patch b/package/hostapd/patches/453-ap_sta_support.patch index 68f0e44e71..4b6c0f1646 100644 --- a/package/hostapd/patches/453-ap_sta_support.patch +++ b/package/hostapd/patches/453-ap_sta_support.patch @@ -1,6 +1,6 @@ --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h -@@ -98,6 +98,8 @@ struct wpa_interface { +@@ -95,6 +95,8 @@ struct wpa_interface { * receiving of EAPOL frames from an additional interface. */ const char *bridge_ifname; @@ -9,7 +9,7 @@ }; /** -@@ -316,6 +318,8 @@ struct wpa_supplicant { +@@ -294,6 +296,8 @@ struct wpa_supplicant { #endif /* CONFIG_CTRL_IFACE_DBUS_NEW */ char bridge_ifname[16]; @@ -20,21 +20,31 @@ int countermeasures; --- a/wpa_supplicant/Makefile +++ b/wpa_supplicant/Makefile -@@ -51,6 +51,11 @@ OBJS_p += ../src/utils/wpa_debug.o - OBJS_p += ../src/utils/wpabuf.o - OBJS_c = wpa_cli.o ../src/common/wpa_ctrl.o +@@ -13,6 +13,10 @@ PKG_CONFIG ?= pkg-config + CFLAGS += -I../src + CFLAGS += -I../src/utils +ifdef MULTICALL -+OBJS += ../src/common/wpa_ctrl.o +CFLAGS += -DMULTICALL +endif + -include .config -include $(if $(MULTICALL),../hostapd/.config) +@@ -76,6 +80,10 @@ OBJS_c = wpa_cli.o ../src/common/wpa_ctr + OBJS_c += ../src/utils/wpa_debug.o + OBJS_c += ../src/utils/common.o + ++ifdef MULTICALL ++OBJS += ../src/common/wpa_ctrl.o ++endif ++ + ifndef CONFIG_OS + ifdef CONFIG_NATIVE_WINDOWS + CONFIG_OS=win32 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c -@@ -120,6 +120,55 @@ extern int wpa_debug_show_keys; +@@ -107,6 +107,55 @@ extern int wpa_debug_show_keys; extern int wpa_debug_timestamp; extern struct wpa_driver_ops *wpa_drivers[]; @@ -71,8 +81,8 @@ + channel = (bss->freq - 5000) / 5; + } + -+ if (asprintf(&cmd, "RELOAD channel=%d sec_chan=0 hw_mode=%d ht_capab_mask=%d ieee80211n=%d", -+ channel, hw_mode, bss->ht_capab, !!bss->ht_capab) < 0) { ++ if (asprintf(&cmd, "UPDATE channel=%d sec_chan=0 hw_mode=%d ieee80211n=%d", ++ channel, hw_mode, !!bss->ht_capab) < 0) { + return -1; + } + @@ -90,10 +100,10 @@ /* Configure default/group WEP keys for static WEP */ int wpa_set_wep_keys(struct wpa_supplicant *wpa_s, struct wpa_ssid *ssid) { -@@ -548,8 +597,16 @@ void wpa_supplicant_set_state(struct wpa - #ifndef IEEE8021X_EAPOL - wpa_drv_set_supp_port(wpa_s, 1); - #endif +@@ -672,8 +721,16 @@ void wpa_supplicant_set_state(struct wpa + #endif /* CONFIG_P2P */ + + sme_sched_obss_scan(wpa_s, 1); +#ifdef MULTICALL + if (wpa_s->hostapd) + hostapd_reload(wpa_s, wpa_s->current_bss); @@ -107,7 +117,7 @@ wpa_s->new_connection = 1; wpa_drv_set_operstate(wpa_s, 0); #ifndef IEEE8021X_EAPOL -@@ -1957,6 +2014,21 @@ static int wpa_supplicant_init_iface(str +@@ -2727,6 +2784,21 @@ static int wpa_supplicant_init_iface(str os_strlcpy(wpa_s->bridge_ifname, iface->bridge_ifname, sizeof(wpa_s->bridge_ifname)); } @@ -131,7 +141,7 @@ eapol_sm_notify_portEnabled(wpa_s->eapol, FALSE); --- a/wpa_supplicant/bss.c +++ b/wpa_supplicant/bss.c -@@ -17,6 +17,7 @@ +@@ -11,6 +11,7 @@ #include "utils/common.h" #include "utils/eloop.h" #include "common/ieee802_11_defs.h" @@ -139,7 +149,7 @@ #include "drivers/driver.h" #include "wpa_supplicant_i.h" #include "config.h" -@@ -89,6 +90,8 @@ struct wpa_bss * wpa_bss_get(struct wpa_ +@@ -139,6 +140,8 @@ struct wpa_bss * wpa_bss_get(struct wpa_ static void wpa_bss_copy_res(struct wpa_bss *dst, struct wpa_scan_res *src) { @@ -148,7 +158,7 @@ os_time_t usec; dst->flags = src->flags; -@@ -101,6 +104,12 @@ static void wpa_bss_copy_res(struct wpa_ +@@ -151,6 +154,12 @@ static void wpa_bss_copy_res(struct wpa_ dst->level = src->level; dst->tsf = src->tsf; @@ -163,9 +173,9 @@ usec = (src->age % 1000) * 1000; --- a/wpa_supplicant/bss.h +++ b/wpa_supplicant/bss.h -@@ -56,6 +56,7 @@ struct wpa_bss { - unsigned int flags; +@@ -72,6 +72,7 @@ struct wpa_bss { u8 bssid[ETH_ALEN]; + u8 hessid[ETH_ALEN]; u8 ssid[32]; + u16 ht_capab; size_t ssid_len; @@ -173,33 +183,33 @@ u16 beacon_int; --- a/wpa_supplicant/main.c +++ b/wpa_supplicant/main.c -@@ -31,7 +31,7 @@ static void usage(void) +@@ -25,7 +25,7 @@ static void usage(void) "usage:\n" " wpa_supplicant [-BddhKLqqstuvW] [-P] " "[-g] \\\n" - " -i -c [-C] [-D] " + " -i -c [-C] [-D] [-H]" "[-p] \\\n" - " [-b] [-f] \\\n" - " [-o] [-O] \\\n" + " [-b] [-f] [-e] " + "\\\n" @@ -67,6 +67,7 @@ static void usage(void) - #endif /* CONFIG_DEBUG_SYSLOG */ + #endif /* CONFIG_DEBUG_LINUX_TRACING */ printf(" -t = include timestamp in debug messages\n" " -h = show this help text\n" + " -H = connect to a hostapd instance to manage state changes\n" - " -L = show license (GPL and BSD)\n" + " -L = show license (BSD)\n" " -o = override driver parameter for new interfaces\n" " -O = override ctrl_interface parameter for new interfaces\n" -@@ -143,7 +144,7 @@ int main(int argc, char *argv[]) - wpa_supplicant_fd_workaround(); +@@ -155,7 +156,7 @@ int main(int argc, char *argv[]) for (;;) { -- c = getopt(argc, argv, "b:Bc:C:D:df:g:hi:KLNo:O:p:P:qstuvW"); -+ c = getopt(argc, argv, "b:Bc:C:D:df:g:hH:i:KLNo:O:p:P:qstuvW"); + c = getopt(argc, argv, +- "b:Bc:C:D:de:f:g:hi:KLNo:O:p:P:qsTtuvW"); ++ "b:Bc:C:D:de:f:g:hH:i:KLNo:O:p:P:qsTtuvW"); if (c < 0) break; switch (c) { -@@ -184,6 +185,9 @@ int main(int argc, char *argv[]) +@@ -199,6 +200,9 @@ int main(int argc, char *argv[]) usage(); exitcode = 0; goto out;