123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261 |
- --- a/src/drivers/driver_nl80211.c
- +++ b/src/drivers/driver_nl80211.c
- @@ -212,7 +212,9 @@ struct wpa_driver_nl80211_data {
- int if_removed;
- int if_disabled;
- int ignore_if_down_event;
- +#ifdef CONFIG_RFKILL
- struct rfkill_data *rfkill;
- +#endif
- struct wpa_driver_capa capa;
- int has_capability;
-
- @@ -2768,7 +2770,7 @@ static int wpa_driver_nl80211_init_nl(st
- return 0;
- }
-
- -
- +#ifdef CONFIG_RFKILL
- static void wpa_driver_nl80211_rfkill_blocked(void *ctx)
- {
- wpa_printf(MSG_DEBUG, "nl80211: RFKILL blocked");
- @@ -2791,6 +2793,7 @@ static void wpa_driver_nl80211_rfkill_un
- }
- /* rtnetlink ifup handler will report interface as enabled */
- }
- +#endif /* CONFIG_RFKILL */
-
-
- static void nl80211_get_phy_name(struct wpa_driver_nl80211_data *drv)
- @@ -2922,7 +2925,9 @@ static void * wpa_driver_nl80211_init(vo
- void *global_priv)
- {
- struct wpa_driver_nl80211_data *drv;
- +#ifdef CONFIG_RFKILL
- struct rfkill_config *rcfg;
- +#endif
- struct i802_bss *bss;
-
- if (global_priv == NULL)
- @@ -2956,6 +2961,7 @@ static void * wpa_driver_nl80211_init(vo
-
- nl80211_get_phy_name(drv);
-
- +#ifdef CONFIG_RFKILL
- rcfg = os_zalloc(sizeof(*rcfg));
- if (rcfg == NULL)
- goto failed;
- @@ -2968,6 +2974,7 @@ static void * wpa_driver_nl80211_init(vo
- wpa_printf(MSG_DEBUG, "nl80211: RFKILL status not available");
- os_free(rcfg);
- }
- +#endif /* CONFIG_RFKILL */
-
- if (wpa_driver_nl80211_finish_drv_init(drv))
- goto failed;
- @@ -3254,10 +3261,12 @@ static void nl80211_mgmt_unsubscribe(str
- }
-
-
- +#ifdef CONFIG_RFKILL
- static void wpa_driver_nl80211_send_rfkill(void *eloop_ctx, void *timeout_ctx)
- {
- wpa_supplicant_event(timeout_ctx, EVENT_INTERFACE_DISABLED, NULL);
- }
- +#endif /* CONFIG_RFKILL */
-
- static int
- wpa_driver_nl80211_finish_drv_init_sta(struct wpa_driver_nl80211_data *drv,
- @@ -3278,13 +3287,16 @@ wpa_driver_nl80211_finish_drv_init_sta(s
- }
-
- if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1)) {
- +#ifdef CONFIG_RFKILL
- if (rfkill_is_blocked(drv->rfkill)) {
- wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable "
- "interface '%s' due to rfkill",
- bss->ifname);
- drv->if_disabled = 1;
- *send_rfkill_event = 1;
- - } else {
- + } else
- +#endif
- + {
- wpa_printf(MSG_ERROR, "nl80211: Could not set "
- "interface '%s' UP", bss->ifname);
- return -1;
- @@ -3315,8 +3327,10 @@ wpa_driver_nl80211_finish_drv_init(struc
- return -1;
-
- if (send_rfkill_event) {
- +#ifdef CONFIG_RFKILL
- eloop_register_timeout(0, 0, wpa_driver_nl80211_send_rfkill,
- drv, drv->ctx);
- +#endif
- }
-
- return 0;
- @@ -3403,7 +3417,9 @@ static void wpa_driver_nl80211_deinit(vo
-
- netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, 0,
- IF_OPER_UP);
- +#ifdef CONFIG_RFKILL
- rfkill_deinit(drv->rfkill);
- +#endif
-
- eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx);
-
- --- a/src/drivers/driver_wext.c
- +++ b/src/drivers/driver_wext.c
- @@ -742,7 +742,7 @@ static void wpa_driver_wext_event_rtm_de
- }
- }
-
- -
- +#ifdef CONFIG_RFKILL
- static void wpa_driver_wext_rfkill_blocked(void *ctx)
- {
- wpa_printf(MSG_DEBUG, "WEXT: RFKILL blocked");
- @@ -764,7 +764,7 @@ static void wpa_driver_wext_rfkill_unblo
- }
- /* rtnetlink ifup handler will report interface as enabled */
- }
- -
- +#endif /* CONFIG_RFKILL */
-
- static void wext_get_phy_name(struct wpa_driver_wext_data *drv)
- {
- @@ -810,7 +810,9 @@ void * wpa_driver_wext_init(void *ctx, c
- {
- struct wpa_driver_wext_data *drv;
- struct netlink_config *cfg;
- +#ifdef CONFIG_RFKILL
- struct rfkill_config *rcfg;
- +#endif
- char path[128];
- struct stat buf;
-
- @@ -845,6 +847,7 @@ void * wpa_driver_wext_init(void *ctx, c
- goto err2;
- }
-
- +#ifdef CONFIG_RFKILL
- rcfg = os_zalloc(sizeof(*rcfg));
- if (rcfg == NULL)
- goto err3;
- @@ -857,6 +860,7 @@ void * wpa_driver_wext_init(void *ctx, c
- wpa_printf(MSG_DEBUG, "WEXT: RFKILL status not available");
- os_free(rcfg);
- }
- +#endif /* CONFIG_RFKILL */
-
- drv->mlme_sock = -1;
-
- @@ -874,7 +878,9 @@ void * wpa_driver_wext_init(void *ctx, c
- return drv;
-
- err3:
- +#ifdef CONFIG_RFKILL
- rfkill_deinit(drv->rfkill);
- +#endif
- netlink_deinit(drv->netlink);
- err2:
- close(drv->ioctl_sock);
- @@ -884,10 +890,12 @@ err1:
- }
-
-
- +#ifdef CONFIG_RFKILL
- static void wpa_driver_wext_send_rfkill(void *eloop_ctx, void *timeout_ctx)
- {
- wpa_supplicant_event(timeout_ctx, EVENT_INTERFACE_DISABLED, NULL);
- }
- +#endif /* CONFIG_RFKILL */
-
-
- static int wpa_driver_wext_finish_drv_init(struct wpa_driver_wext_data *drv)
- @@ -895,13 +903,16 @@ static int wpa_driver_wext_finish_drv_in
- int send_rfkill_event = 0;
-
- if (linux_set_iface_flags(drv->ioctl_sock, drv->ifname, 1) < 0) {
- +#ifdef CONFIG_RFKILL
- if (rfkill_is_blocked(drv->rfkill)) {
- wpa_printf(MSG_DEBUG, "WEXT: Could not yet enable "
- "interface '%s' due to rfkill",
- drv->ifname);
- drv->if_disabled = 1;
- send_rfkill_event = 1;
- - } else {
- + } else
- +#endif
- + {
- wpa_printf(MSG_ERROR, "WEXT: Could not set "
- "interface '%s' UP", drv->ifname);
- return -1;
- @@ -949,8 +960,10 @@ static int wpa_driver_wext_finish_drv_in
- 1, IF_OPER_DORMANT);
-
- if (send_rfkill_event) {
- +#ifdef CONFIG_RFKILL
- eloop_register_timeout(0, 0, wpa_driver_wext_send_rfkill,
- drv, drv->ctx);
- +#endif
- }
-
- return 0;
- @@ -980,7 +993,9 @@ void wpa_driver_wext_deinit(void *priv)
-
- netlink_send_oper_ifla(drv->netlink, drv->ifindex, 0, IF_OPER_UP);
- netlink_deinit(drv->netlink);
- +#ifdef CONFIG_RFKILL
- rfkill_deinit(drv->rfkill);
- +#endif
-
- if (drv->mlme_sock >= 0)
- eloop_unregister_read_sock(drv->mlme_sock);
- --- a/src/drivers/drivers.mak
- +++ b/src/drivers/drivers.mak
- @@ -25,7 +25,6 @@ NEED_SME=y
- NEED_AP_MLME=y
- NEED_NETLINK=y
- NEED_LINUX_IOCTL=y
- -NEED_RFKILL=y
-
- ifdef CONFIG_LIBNL32
- DRV_LIBS += -lnl-3
- @@ -101,7 +100,6 @@ DRV_WPA_CFLAGS += -DCONFIG_DRIVER_WEXT
- CONFIG_WIRELESS_EXTENSION=y
- NEED_NETLINK=y
- NEED_LINUX_IOCTL=y
- -NEED_RFKILL=y
- endif
-
- ifdef CONFIG_DRIVER_NDIS
- @@ -127,7 +125,6 @@ endif
- ifdef CONFIG_WIRELESS_EXTENSION
- DRV_WPA_CFLAGS += -DCONFIG_WIRELESS_EXTENSION
- DRV_WPA_OBJS += ../src/drivers/driver_wext.o
- -NEED_RFKILL=y
- endif
-
- ifdef NEED_NETLINK
- @@ -140,6 +137,7 @@ endif
-
- ifdef NEED_RFKILL
- DRV_OBJS += ../src/drivers/rfkill.o
- +DRV_WPA_CFLAGS += -DCONFIG_RFKILL
- endif
-
-
- --- a/src/drivers/driver_wext.h
- +++ b/src/drivers/driver_wext.h
- @@ -22,7 +22,9 @@ struct wpa_driver_wext_data {
- int ifindex2;
- int if_removed;
- int if_disabled;
- +#ifdef CONFIG_RFKILL
- struct rfkill_data *rfkill;
- +#endif
- u8 *assoc_req_ies;
- size_t assoc_req_ies_len;
- u8 *assoc_resp_ies;
|