static void wpa_ndiswrapper_deinit(void *priv) { struct wpa_driver_ndiswrapper_data *drv = priv; wpa_driver_wext_deinit(drv->wext); close(drv->sock); free(drv); }
void wpa_driver_awext_deinit(void *priv) { struct wpa_driver_awext_data *drv = priv; wpa_driver_wext_deinit(drv->wext); close(drv->ioctl_sock); os_free(drv); }
static void wpa_driver_madwifi_deinit(void *priv) { struct wpa_driver_madwifi_data *drv = priv; if (wpa_driver_madwifi_set_wpa_ie(drv, NULL, 0) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to clear WPA IE", __FUNCTION__); } if (set80211param(drv, IEEE80211_PARAM_ROAMING, 0, 1) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to enable driver-based " "roaming", __FUNCTION__); } if (set80211param(drv, IEEE80211_PARAM_PRIVACY, 0, 1) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to disable forced Privacy " "flag", __FUNCTION__); } if (set80211param(drv, IEEE80211_PARAM_WPA, 0, 1) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to disable WPA", __FUNCTION__); } wpa_driver_wext_deinit(drv->wext); close(drv->sock); os_free(drv); }
void * wpa_driver_awext_init(void *ctx, const char *ifname) { struct wpa_driver_awext_data *drv; drv = os_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { os_free(drv); return NULL; } drv->ctx = ctx; os_strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->ioctl_sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->ioctl_sock < 0) { wpa_driver_wext_deinit(drv->wext); os_free(drv); return NULL; } return drv; }
static void wpa_driver_prism54_deinit(void *priv) { struct wpa_driver_prism54_data *drv = priv; wpa_driver_wext_deinit(drv->wext); close(drv->sock); os_free(drv); }
static void * wpa_driver_madwifi_init(void *ctx, const char *ifname) { struct wpa_driver_madwifi_data *drv; drv = malloc(sizeof(*drv)); if (drv == NULL) return NULL; memset(drv, 0, sizeof(*drv)); drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { free(drv); return NULL; } drv->ctx = ctx; strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->sock < 0) { wpa_driver_wext_deinit(drv->wext); free(drv); return NULL; } return drv; }
static void * wpa_driver_ipw_init(void *ctx, const char *ifname) { struct wpa_driver_ipw_data *drv; int ver; wpa_printf(MSG_DEBUG, "%s is called", __FUNCTION__); drv = os_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { os_free(drv); return NULL; } ver = wpa_driver_wext_get_version(drv->wext); if (ver >= 18) { wpa_printf(MSG_WARNING, "Linux wireless extensions version %d " "detected.", ver); wpa_printf(MSG_WARNING, "ipw2x00 driver uses driver_wext " "(-Dwext) instead of driver_ipw."); } drv->ctx = ctx; os_strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->sock < 0) { wpa_driver_wext_deinit(drv->wext); os_free(drv); return NULL; } return drv; }
static void wpa_driver_ipw_deinit(void *priv) { struct wpa_driver_ipw_data *drv = priv; wpa_driver_ipw_set_wpa(drv, 0); wpa_driver_wext_deinit(drv->wext); close(drv->sock); os_free(drv); }
/** * wpa_driver_tista_deinit - Deinitialize WE driver interface * @priv: Pointer to private wext data from wpa_driver_tista_init() * * Shut down driver interface and processing of driver events. Free * private data buffer if one was allocated in wpa_driver_tista_init(). */ void wpa_driver_tista_deinit(void *priv) { struct wpa_driver_ti_data *drv = priv; wpa_driver_wext_deinit(drv->wext); close(drv->ioctl_sock); scan_exit(drv); #ifdef CONFIG_WPS wpabuf_free(drv->probe_req_ie); drv->probe_req_ie = NULL; #endif os_free(drv); }
/** * wpa_driver_tista_init - Initialize WE driver interface * @ctx: context to be used when calling wpa_supplicant functions, * e.g., wpa_supplicant_event() * @ifname: interface name, e.g., wlan0 * Returns: Pointer to private data, %NULL on failure */ void * wpa_driver_tista_init(void *ctx, const char *ifname) { struct wpa_driver_ti_data *drv; drv = os_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { os_free(drv); return NULL; } drv->ctx = ctx; os_strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->ioctl_sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->ioctl_sock < 0) { perror("socket"); wpa_driver_wext_deinit(drv->wext); os_free(drv); return NULL; } /* Signal that driver is not stopped */ drv->driver_is_loaded = TRUE; /* Set default scan type */ drv->scan_type = SCAN_TYPE_NORMAL_ACTIVE; drv->force_merge_flag = 0; scan_init(drv); /* Set default amount of channels */ drv->scan_channels = check_and_get_build_channels(); /* Link Speed will be set by the message from the driver */ drv->link_speed = 0; /* BtCoex mode is read from tiwlan.ini file */ drv->btcoex_mode = 0; /* SG_DISABLE */ #ifdef CONFIG_WPS /* The latest probe_req_ie for WSC */ drv->probe_req_ie = NULL; #endif /* Number of sequential errors */ drv->errors = 0; return drv; }
static void * wpa_driver_madwifi_init(void *ctx, const char *ifname) { struct wpa_driver_madwifi_data *drv; drv = malloc(sizeof(*drv)); if (drv == NULL) return NULL; memset(drv, 0, sizeof(*drv)); drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) goto fail; drv->ctx = ctx; strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->sock < 0) goto fail2; if (set80211param(drv, IEEE80211_PARAM_ROAMING, 2, 1) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to set wpa_supplicant-based " "roaming", __FUNCTION__); goto fail3; } if (set80211param(drv, IEEE80211_PARAM_WPA, 3, 1) < 0) { wpa_printf(MSG_DEBUG, "%s: failed to enable WPA support", __FUNCTION__); goto fail3; } return drv; fail3: close(drv->sock); fail2: wpa_driver_wext_deinit(drv->wext); fail: free(drv); return NULL; }
static void * wpa_driver_hostap_init(void *ctx, const char *ifname) { struct wpa_driver_hostap_data *drv; drv = os_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { os_free(drv); return NULL; } drv->ctx = ctx; os_strlcpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = socket(PF_INET, SOCK_DGRAM, 0); if (drv->sock < 0) { perror("socket"); wpa_driver_wext_deinit(drv->wext); os_free(drv); return NULL; } if (os_strncmp(ifname, "wlan", 4) == 0) { /* * Host AP driver may use both wlan# and wifi# interface in * wireless events. */ char ifname2[IFNAMSIZ + 1]; os_strlcpy(ifname2, ifname, sizeof(ifname2)); os_memcpy(ifname2, "wifi", 4); wpa_driver_wext_alternative_ifindex(drv->wext, ifname2); } wpa_driver_hostap_set_wpa(drv, 1); return drv; }
static void * wpa_ndiswrapper_init(void *ctx, const char *ifname) { struct wpa_driver_ndiswrapper_data *drv; drv = wpa_zalloc(sizeof(*drv)); if (drv == NULL) return NULL; drv->wext = wpa_driver_wext_init(ctx, ifname); if (drv->wext == NULL) { free(drv); return NULL; } drv->ctx = ctx; strncpy(drv->ifname, ifname, sizeof(drv->ifname)); drv->sock = get_socket(); if (drv->sock < 0) { wpa_driver_wext_deinit(drv->wext); free(drv); return NULL; } return drv; }