source: branches/backfire/package/hostapd/patches/500-scan_wait.patch @ 27031

Last change on this file since 27031 was 27031, checked in by nbd, 6 years ago

hostapd: backport current version from trunk as of r27021

File size: 3.8 KB
  • src/ap/hostapd.h

    a b struct hostapd_iface { 
    229229        int (*for_each_interface)(struct hapd_interfaces *interfaces, 
    230230                                  int (*cb)(struct hostapd_iface *iface, 
    231231                                            void *ctx), void *ctx); 
     232        int (*init_complete)(struct hostapd_iface *iface); 
    232233}; 
    233234 
    234235/* hostapd.c */ 
  • src/ap/hostapd.c

    a b int hostapd_setup_interface_complete(str 
    807807        wpa_printf(MSG_DEBUG, "%s: Setup of interface done.", 
    808808                   iface->bss[0]->conf->iface); 
    809809 
     810        if (iface->init_complete) 
     811                iface->init_complete(iface); 
     812 
    810813        return 0; 
    811814} 
    812815 
  • hostapd/main.c

    a b  
    3636extern int wpa_debug_level; 
    3737extern int wpa_debug_show_keys; 
    3838extern int wpa_debug_timestamp; 
     39static int daemonize = 0; 
     40static char *pid_file = NULL; 
    3941 
    4042 
    4143struct hapd_interfaces { 
    static void hostapd_logger_cb(void *ctx, 
    163165} 
    164166#endif /* CONFIG_NO_HOSTAPD_LOGGER */ 
    165167 
     168static int hostapd_init_complete(struct hostapd_iface *iface) 
     169{ 
     170        if (daemonize && os_daemonize(pid_file)) { 
     171                perror("daemon"); 
     172                return -1; 
     173        } 
     174        daemonize = 0; 
     175        return 0; 
     176} 
     177 
    166178 
    167179/** 
    168180 * hostapd_init - Allocate and initialize per-interface data 
    static struct hostapd_iface * hostapd_in 
    184196        if (hapd_iface == NULL) 
    185197                goto fail; 
    186198 
     199        hapd_iface->init_complete = hostapd_init_complete; 
    187200        hapd_iface->reload_config = hostapd_reload_config; 
    188201        hapd_iface->config_read_cb = hostapd_config_read; 
    189202        hapd_iface->config_fname = os_strdup(config_file); 
    static int hostapd_global_init(struct ha 
    399412} 
    400413 
    401414 
    402 static void hostapd_global_deinit(const char *pid_file) 
     415static void hostapd_global_deinit(void) 
    403416{ 
    404417#ifdef EAP_SERVER_TNC 
    405418        tncs_global_deinit(); 
    static void hostapd_global_deinit(const  
    419432} 
    420433 
    421434 
    422 static int hostapd_global_run(struct hapd_interfaces *ifaces, int daemonize, 
    423                               const char *pid_file) 
     435static int hostapd_global_run(struct hapd_interfaces *iface) 
    424436{ 
    425437#ifdef EAP_SERVER_TNC 
    426438        int tnc = 0; 
    static int hostapd_global_run(struct hap 
    441453        } 
    442454#endif /* EAP_SERVER_TNC */ 
    443455 
    444         if (daemonize && os_daemonize(pid_file)) { 
    445                 perror("daemon"); 
    446                 return -1; 
    447         } 
    448  
    449456        eloop_run(); 
    450457 
    451458        return 0; 
    int main(int argc, char *argv[]) 
    501508        struct hapd_interfaces interfaces; 
    502509        int ret = 1; 
    503510        size_t i; 
    504         int c, debug = 0, daemonize = 0; 
    505         char *pid_file = NULL; 
     511        int c, debug = 0; 
    506512        const char *log_file = NULL; 
    507513 
    508514        if (os_program_init()) 
    int main(int argc, char *argv[]) 
    576582                        goto out; 
    577583        } 
    578584 
    579         if (hostapd_global_run(&interfaces, daemonize, pid_file)) 
     585        if (hostapd_global_run(&interfaces)) 
    580586                goto out; 
    581587 
    582588        ret = 0; 
    int main(int argc, char *argv[]) 
    587593                hostapd_interface_deinit_free(interfaces.iface[i]); 
    588594        os_free(interfaces.iface); 
    589595 
    590         hostapd_global_deinit(pid_file); 
     596        hostapd_global_deinit(); 
    591597        os_free(pid_file); 
    592598 
    593599        if (log_file) 
  • hostapd/config_file.c

    a b struct hostapd_config * hostapd_config_r 
    18911891                        } 
    18921892#endif /* CONFIG_IEEE80211W */ 
    18931893#ifdef CONFIG_IEEE80211N 
     1894                } else if (os_strcmp(buf, "noscan") == 0) { 
     1895                        conf->noscan = atoi(pos); 
    18941896                } else if (os_strcmp(buf, "ieee80211n") == 0) { 
    18951897                        conf->ieee80211n = atoi(pos); 
    18961898                } else if (os_strcmp(buf, "ht_capab") == 0) { 
  • src/ap/ap_config.h

    a b struct hostapd_config { 
    390390 
    391391        int ht_op_mode_fixed; 
    392392        u16 ht_capab; 
     393        int noscan; 
    393394        int ieee80211n; 
    394395        int secondary_channel; 
    395396        int require_ht; 
  • src/ap/hw_features.c

    a b static int ieee80211n_check_40mhz(struct 
    463463{ 
    464464        struct wpa_driver_scan_params params; 
    465465 
    466         if (!iface->conf->secondary_channel) 
     466        if (!iface->conf->secondary_channel || iface->conf->noscan) 
    467467                return 0; /* HT40 not used */ 
    468468 
    469469        wpa_printf(MSG_DEBUG, "Scan for neighboring BSSes prior to enabling " 
Note: See TracBrowser for help on using the repository browser.