source: trunk/package/hostapd/patches/320-nl80211_multicall_fixes.patch @ 26261

Last change on this file since 26261 was 26261, checked in by nbd, 5 years ago

hostapd: update to 2011-02-21, use PKG_MIRROR_MD5SUM, includes fixes for WPS

File size: 2.9 KB
  • src/drivers/driver_nl80211.c

    a b nla_put_failure: 
    14681468} 
    14691469 
    14701470 
    1471 #ifndef HOSTAPD 
    14721471struct wiphy_info_data { 
    14731472        int max_scan_ssids; 
    14741473        int ap_supported; 
    static int wpa_driver_nl80211_capa(struc 
    16131612 
    16141613        return 0; 
    16151614} 
    1616 #endif /* HOSTAPD */ 
    16171615 
    16181616 
    16191617static int wpa_driver_nl80211_init_nl(struct wpa_driver_nl80211_data *drv) 
    static void * wpa_driver_nl80211_init(vo 
    18251823        drv->monitor_ifidx = -1; 
    18261824        drv->monitor_sock = -1; 
    18271825        drv->ioctl_sock = -1; 
     1826        drv->nlmode = NL80211_IFTYPE_STATION; 
    18281827 
    18291828        if (wpa_driver_nl80211_init_nl(drv)) { 
    18301829                os_free(drv); 
    wpa_driver_nl80211_finish_drv_init(struc 
    19881987        drv->ifindex = if_nametoindex(bss->ifname); 
    19891988        drv->first_bss.ifindex = drv->ifindex; 
    19901989 
    1991 #ifndef HOSTAPD 
    1992         if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0) { 
    1993                 wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to " 
    1994                            "use managed mode"); 
    1995         } 
    1996  
    1997         if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) { 
    1998                 if (rfkill_is_blocked(drv->rfkill)) { 
    1999                         wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable " 
    2000                                    "interface '%s' due to rfkill", 
    2001                                    bss->ifname); 
    2002                         drv->if_disabled = 1; 
    2003                         send_rfkill_event = 1; 
    2004                 } else { 
    2005                         wpa_printf(MSG_ERROR, "nl80211: Could not set " 
    2006                                    "interface '%s' UP", bss->ifname); 
    2007                         return -1; 
     1990        if (drv->nlmode == NL80211_IFTYPE_STATION) { 
     1991                if (wpa_driver_nl80211_set_mode(bss, IEEE80211_MODE_INFRA) < 0) { 
     1992                        wpa_printf(MSG_DEBUG, "nl80211: Could not configure driver to " 
     1993                                   "use managed mode"); 
     1994                } 
     1995 
     1996                if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) { 
     1997                        if (rfkill_is_blocked(drv->rfkill)) { 
     1998                                wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable " 
     1999                                           "interface '%s' due to rfkill", 
     2000                                           bss->ifname); 
     2001                                drv->if_disabled = 1; 
     2002                                send_rfkill_event = 1; 
     2003                        } else { 
     2004                                wpa_printf(MSG_ERROR, "nl80211: Could not set " 
     2005                                           "interface '%s' UP", bss->ifname); 
     2006                                return -1; 
     2007                        } 
    20082008                } 
    2009         } 
    20102009 
    2011         if (wpa_driver_nl80211_capa(drv)) 
    2012                 return -1; 
     2010                if (wpa_driver_nl80211_capa(drv)) 
     2011                        return -1; 
    20132012 
    2014         netlink_send_oper_ifla(drv->netlink, drv->ifindex, 
    2015                                1, IF_OPER_DORMANT); 
    2016 #endif /* HOSTAPD */ 
     2013                netlink_send_oper_ifla(drv->netlink, drv->ifindex, 
     2014                                       1, IF_OPER_DORMANT); 
     2015        } 
    20172016 
    20182017        if (linux_get_ifhwaddr(drv->ioctl_sock, bss->ifname, drv->addr)) 
    20192018                return -1; 
    static void nl80211_remove_iface(struct  
    37383737 
    37393738#ifdef HOSTAPD 
    37403739        /* stop listening for EAPOL on this interface */ 
    3741         del_ifidx(drv, ifidx); 
     3740        if (drv->nlmode == NL80211_IFTYPE_AP) 
     3741                del_ifidx(drv, ifidx); 
    37423742#endif /* HOSTAPD */ 
    37433743 
    37443744        msg = nlmsg_alloc(); 
    static int nl80211_create_iface_once(str 
    38113811 
    38123812#ifdef HOSTAPD 
    38133813        /* start listening for EAPOL on this interface */ 
    3814         add_ifidx(drv, ifidx); 
     3814        if (drv->nlmode == NL80211_IFTYPE_AP) 
     3815                add_ifidx(drv, ifidx); 
    38153816#endif /* HOSTAPD */ 
    38163817 
    38173818        if (addr && iftype != NL80211_IFTYPE_MONITOR && 
Note: See TracBrowser for help on using the repository browser.