Exemple #1
0
static int cfg80211_wext_giwap(struct net_device *dev,
			       struct iw_request_info *info,
			       struct sockaddr *ap_addr, char *extra)
{
	struct wireless_dev *wdev = dev->ieee80211_ptr;

	switch (wdev->iftype) {
	case NL80211_IFTYPE_ADHOC:
		return cfg80211_ibss_wext_giwap(dev, info, ap_addr, extra);
	case NL80211_IFTYPE_STATION:
		return cfg80211_mgd_wext_giwap(dev, info, ap_addr, extra);
	case NL80211_IFTYPE_WDS:
		return cfg80211_wds_wext_giwap(dev, info, ap_addr, extra);
	default:
		return -EOPNOTSUPP;
	}
}
Exemple #2
0
static int iwm_wext_giwap(struct net_device *dev, struct iw_request_info *info,
                          struct sockaddr *ap_addr, char *extra)
{
    struct iwm_priv *iwm = ndev_to_iwm(dev);

    switch (iwm->conf.mode) {
    case UMAC_MODE_IBSS:
        return cfg80211_ibss_wext_giwap(dev, info, ap_addr, extra);
    case UMAC_MODE_BSS:
        if (test_bit(IWM_STATUS_ASSOCIATED, &iwm->status)) {
            ap_addr->sa_family = ARPHRD_ETHER;
            memcpy(&ap_addr->sa_data, iwm->bssid, ETH_ALEN);
        } else
            memset(&ap_addr->sa_data, 0, ETH_ALEN);
        break;
    default:
        return -EOPNOTSUPP;
    }

    return 0;
}