]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Merge set_key and hapd_set_key driver_ops into a single function
authorJouni Malinen <jouni.malinen@atheros.com>
Mon, 23 Nov 2009 14:58:32 +0000 (16:58 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 23 Nov 2009 14:58:32 +0000 (16:58 +0200)
19 files changed:
hostapd/driver_i.h
src/drivers/driver.h
src/drivers/driver_atheros.c
src/drivers/driver_atmel.c
src/drivers/driver_broadcom.c
src/drivers/driver_bsd.c
src/drivers/driver_hostap.c
src/drivers/driver_ipw.c
src/drivers/driver_madwifi.c
src/drivers/driver_ndis.c
src/drivers/driver_ndiswrapper.c
src/drivers/driver_nl80211.c
src/drivers/driver_prism54.c
src/drivers/driver_privsep.c
src/drivers/driver_ralink.c
src/drivers/driver_test.c
src/drivers/driver_wext.c
src/drivers/driver_wext.h
wpa_supplicant/driver_i.h

index 9dc77fd17d0cca510e9584d7989f90817e8320b7..22f0d327651ec109d5667b37dc0005236c649317 100644 (file)
@@ -87,11 +87,11 @@ hostapd_set_key(const char *ifname, struct hostapd_data *hapd,
                int set_tx, const u8 *seq, size_t seq_len,
                const u8 *key, size_t key_len)
 {
-       if (hapd->driver == NULL || hapd->driver->hapd_set_key == NULL)
+       if (hapd->driver == NULL || hapd->driver->set_key == NULL)
                return 0;
-       return hapd->driver->hapd_set_key(ifname, hapd->drv_priv, alg, addr,
-                                         key_idx, set_tx, seq, seq_len, key,
-                                         key_len);
+       return hapd->driver->set_key(ifname, hapd->drv_priv, alg, addr,
+                                    key_idx, set_tx, seq, seq_len, key,
+                                    key_len);
 }
 
 static inline int
index 426c848fe324c1decdb8d707b6da503db540c584..03fea103cd17e77f7b2efad8843f417428f242bc 100644 (file)
@@ -15,7 +15,7 @@
 #ifndef DRIVER_H
 #define DRIVER_H
 
-#define WPA_SUPPLICANT_DRIVER_VERSION 3
+#define WPA_SUPPLICANT_DRIVER_VERSION 4
 
 #include "defs.h"
 
@@ -593,6 +593,7 @@ struct wpa_driver_ops {
 
        /**
         * set_key - Configure encryption key
+        * @ifname: Interface name (for multi-SSID/VLAN support)
         * @priv: private driver interface data
         * @alg: encryption algorithm (%WPA_ALG_NONE, %WPA_ALG_WEP,
         *      %WPA_ALG_TKIP, %WPA_ALG_CCMP, %WPA_ALG_IGTK, %WPA_ALG_PMK);
@@ -634,8 +635,9 @@ struct wpa_driver_ops {
         * in driver_*.c set_key() implementation, see driver_ndis.c for an
         * example on how this can be done.
         */
-       int (*set_key)(void *priv, wpa_alg alg, const u8 *addr,
-                      int key_idx, int set_tx, const u8 *seq, size_t seq_len,
+       int (*set_key)(const char *ifname, void *priv, wpa_alg alg,
+                      const u8 *addr, int key_idx, int set_tx,
+                      const u8 *seq, size_t seq_len,
                       const u8 *key, size_t key_len);
 
        /**
@@ -1246,10 +1248,6 @@ struct wpa_driver_ops {
         */
        int (*set_privacy)(const char *ifname, void *priv, int enabled);
 
-       int (*hapd_set_key)(const char *ifname, void *priv, wpa_alg alg,
-                           const u8 *addr, int key_idx, int set_tx,
-                           const u8 *seq, size_t seq_len,
-                           const u8 *key, size_t key_len);
        int (*get_seqnum)(const char *ifname, void *priv, const u8 *addr,
                          int idx, u8 *seq);
        int (*get_seqnum_igtk)(const char *ifname, void *priv, const u8 *addr,
index 912213675afe8c5595344158ae21bb48c7d07853..de1b048d2bff5888661d8fa80bc7d318b8f7e4b0 100644 (file)
@@ -1315,7 +1315,7 @@ const struct wpa_driver_ops wpa_driver_atheros_ops = {
        .deinit                 = madwifi_deinit,
        .set_ieee8021x          = madwifi_set_ieee8021x,
        .set_privacy            = madwifi_set_privacy,
-       .hapd_set_key           = madwifi_set_key,
+       .set_key                = madwifi_set_key,
        .get_seqnum             = madwifi_get_seqnum,
        .flush                  = madwifi_flush,
        .set_generic_elem       = madwifi_set_opt_ie,
index 0a7a66ddb5f2ee7a6b02b3529d4c2affe56befe0..588bfec5136fe4d2e7f43e71473f6e3cc9addce5 100644 (file)
@@ -188,8 +188,8 @@ static int wpa_driver_atmel_set_wpa(void *priv, int enabled)
 }
 
 
-static int wpa_driver_atmel_set_key(void *priv, wpa_alg alg,
-                                   const u8 *addr, int key_idx,
+static int wpa_driver_atmel_set_key(const char *ifname, void *priv,
+                                   wpa_alg alg, const u8 *addr, int key_idx,
                                    int set_tx, const u8 *seq, size_t seq_len,
                                    const u8 *key, size_t key_len)
 {
index 1044cd7d925bbb4d89528637863b36ff0ffbcd4b..c7c4270409a824c588de08cc3274bc813014c44c 100644 (file)
@@ -162,7 +162,8 @@ static int wpa_driver_broadcom_set_wpa(void *priv, int enable)
        return 0;
 }
 
-static int wpa_driver_broadcom_set_key(void *priv, wpa_alg alg,
+static int wpa_driver_broadcom_set_key(const char *ifname, void *priv,
+                                      wpa_alg alg,
                                       const u8 *addr, int key_idx, int set_tx,
                                       const u8 *seq, size_t seq_len,
                                       const u8 *key, size_t key_len)
index e292c3dc372782f77ec93d9738063b68b9eacb8f..856cfb7dd0d7f6ee1eba3ac4f76662c42a181045 100644 (file)
@@ -828,7 +828,7 @@ const struct wpa_driver_ops wpa_driver_bsd_ops = {
        .hapd_deinit            = bsd_deinit,
        .set_ieee8021x          = bsd_set_ieee8021x,
        .set_privacy            = bsd_set_privacy,
-       .hapd_set_key           = bsd_set_key,
+       .set_key                = bsd_set_key,
        .get_seqnum             = bsd_get_seqnum,
        .flush                  = bsd_flush,
        .set_generic_elem       = bsd_set_opt_ie,
@@ -1023,7 +1023,7 @@ wpa_driver_bsd_del_key(struct wpa_driver_bsd_data *drv, int key_idx,
 }
 
 static int
-wpa_driver_bsd_set_key(void *priv, wpa_alg alg,
+wpa_driver_bsd_set_key(const char *ifname, void *priv, wpa_alg alg,
                       const unsigned char *addr, int key_idx, int set_tx,
                       const u8 *seq, size_t seq_len,
                       const u8 *key, size_t key_len)
index ee57ee687581c9701e65288ded68f7f174745dca..905560423da7bb75161754919fd1e2db92dbd775 100644 (file)
@@ -431,10 +431,10 @@ static int hostapd_ioctl(void *priv, struct prism2_hostapd_param *param,
 }
 
 
-static int hostap_set_key(const char *ifname, void *priv, wpa_alg alg,
-                         const u8 *addr, int key_idx, int set_tx,
-                         const u8 *seq, size_t seq_len, const u8 *key,
-                         size_t key_len)
+static int wpa_driver_hostap_set_key(const char *ifname, void *priv,
+                                    wpa_alg alg, const u8 *addr, int key_idx,
+                                    int set_tx, const u8 *seq, size_t seq_len,
+                                    const u8 *key, size_t key_len)
 {
        struct hostap_driver_data *drv = priv;
        struct prism2_hostapd_param *param;
@@ -1350,8 +1350,8 @@ static void show_set_key_error(struct prism2_hostapd_param *param)
 }
 
 
-static int wpa_driver_hostap_set_key(void *priv, wpa_alg alg,
-                                    const u8 *addr, int key_idx,
+static int wpa_driver_hostap_set_key(const char *ifname, void *priv,
+                                    wpa_alg alg, const u8 *addr, int key_idx,
                                     int set_tx, const u8 *seq, size_t seq_len,
                                     const u8 *key, size_t key_len)
 {
@@ -1700,12 +1700,12 @@ static void wpa_driver_hostap_deinit(void *priv)
 const struct wpa_driver_ops wpa_driver_hostap_ops = {
        .name = "hostap",
        .desc = "Host AP driver (Intersil Prism2/2.5/3)",
+       .set_key = wpa_driver_hostap_set_key,
 #ifdef HOSTAPD
        .hapd_init = hostap_init,
        .hapd_deinit = hostap_driver_deinit,
        .set_ieee8021x = hostap_set_ieee8021x,
        .set_privacy = hostap_set_privacy,
-       .hapd_set_key = hostap_set_key,
        .get_seqnum = hostap_get_seqnum,
        .flush = hostap_flush,
        .set_generic_elem = hostap_set_generic_elem,
@@ -1727,7 +1727,6 @@ const struct wpa_driver_ops wpa_driver_hostap_ops = {
        .get_bssid = wpa_driver_hostap_get_bssid,
        .get_ssid = wpa_driver_hostap_get_ssid,
        .set_wpa = wpa_driver_hostap_set_wpa,
-       .set_key = wpa_driver_hostap_set_key,
        .set_countermeasures = wpa_driver_hostap_set_countermeasures,
        .set_drop_unencrypted = wpa_driver_hostap_set_drop_unencrypted,
        .scan = wpa_driver_hostap_scan,
index 3c19cccf46405c9dcad5a4bb482a8b003fe1e28f..68f355d91f0f91bb26777e1b8ea0f21516b1b3ba 100644 (file)
@@ -213,10 +213,10 @@ static int wpa_driver_ipw_set_wpa(void *priv, int enabled)
 }
 
 
-static int wpa_driver_ipw_set_key(void *priv, wpa_alg alg,
-                                     const u8 *addr, int key_idx, int set_tx,
-                                     const u8 *seq, size_t seq_len,
-                                     const u8 *key, size_t key_len)
+static int wpa_driver_ipw_set_key(const char *ifname, void *priv, wpa_alg alg,
+                                 const u8 *addr, int key_idx, int set_tx,
+                                 const u8 *seq, size_t seq_len,
+                                 const u8 *key, size_t key_len)
 {
        struct wpa_driver_ipw_data *drv = priv;
        struct ipw_param *param;
index dfb33c97b3ec49f4eeafa38a97f11a817b5de452..e14246f43c7d24cea6533b5c5cd5d1f6599cc415 100644 (file)
@@ -455,9 +455,10 @@ madwifi_del_key(void *priv, const u8 *addr, int key_idx)
 }
 
 static int
-madwifi_set_key(const char *ifname, void *priv, wpa_alg alg,
-               const u8 *addr, int key_idx, int set_tx, const u8 *seq,
-               size_t seq_len, const u8 *key, size_t key_len)
+wpa_driver_madwifi_set_key(const char *ifname, void *priv, wpa_alg alg,
+                          const u8 *addr, int key_idx, int set_tx,
+                          const u8 *seq, size_t seq_len,
+                          const u8 *key, size_t key_len)
 {
        struct madwifi_driver_data *drv = priv;
        struct ieee80211req_key wk;
@@ -1530,7 +1531,7 @@ wpa_driver_madwifi_del_key(struct wpa_driver_madwifi_data *drv, int key_idx,
 }
 
 static int
-wpa_driver_madwifi_set_key(void *priv, wpa_alg alg,
+wpa_driver_madwifi_set_key(const char *ifname, void *priv, wpa_alg alg,
                           const u8 *addr, int key_idx, int set_tx,
                           const u8 *seq, size_t seq_len,
                           const u8 *key, size_t key_len)
@@ -1552,8 +1553,8 @@ wpa_driver_madwifi_set_key(void *priv, wpa_alg alg,
                         * configuration with IEEE80211_IOCTL_SETKEY, so use
                         * Linux wireless extensions ioctl for this.
                         */
-                       return wpa_driver_wext_set_key(drv->wext, alg, addr,
-                                                      key_idx, set_tx,
+                       return wpa_driver_wext_set_key(ifname, drv->wext, alg,
+                                                      addr, key_idx, set_tx,
                                                       seq, seq_len,
                                                       key, key_len);
                }
@@ -1910,12 +1911,12 @@ static void wpa_driver_madwifi_deinit(void *priv)
 const struct wpa_driver_ops wpa_driver_madwifi_ops = {
        .name                   = "madwifi",
        .desc                   = "MADWIFI 802.11 support (Atheros, etc.)",
+       .set_key                = wpa_driver_madwifi_set_key,
 #ifdef HOSTAPD
        .hapd_init              = madwifi_init,
        .hapd_deinit            = madwifi_deinit,
        .set_ieee8021x          = madwifi_set_ieee8021x,
        .set_privacy            = madwifi_set_privacy,
-       .hapd_set_key           = madwifi_set_key,
        .get_seqnum             = madwifi_get_seqnum,
        .flush                  = madwifi_flush,
        .set_generic_elem       = madwifi_set_opt_ie,
@@ -1934,7 +1935,6 @@ const struct wpa_driver_ops wpa_driver_madwifi_ops = {
 #else /* HOSTAPD */
        .get_bssid              = wpa_driver_madwifi_get_bssid,
        .get_ssid               = wpa_driver_madwifi_get_ssid,
-       .set_key                = wpa_driver_madwifi_set_key,
        .init                   = wpa_driver_madwifi_init,
        .deinit                 = wpa_driver_madwifi_deinit,
        .set_countermeasures    = wpa_driver_madwifi_set_countermeasures,
index 65c369eb36d6e6d4745bd5e3ca183b88bd2e02d3..6ceb322159d45e9145bbcc05ef0a4eaf4e9887c9 100644 (file)
@@ -975,8 +975,8 @@ static int wpa_driver_ndis_add_wep(struct wpa_driver_ndis_data *drv,
 }
 
 
-static int wpa_driver_ndis_set_key(void *priv, wpa_alg alg, const u8 *addr,
-                                  int key_idx, int set_tx,
+static int wpa_driver_ndis_set_key(const char *ifname, void *priv, wpa_alg alg,
+                                  const u8 *addr, int key_idx, int set_tx,
                                   const u8 *seq, size_t seq_len,
                                   const u8 *key, size_t key_len)
 {
@@ -1083,7 +1083,8 @@ wpa_driver_ndis_associate(void *priv,
                                continue;
                        wpa_printf(MSG_DEBUG, "NDIS: Re-setting static WEP "
                                   "key %d", i);
-                       wpa_driver_ndis_set_key(drv, WPA_ALG_WEP, bcast, i,
+                       wpa_driver_ndis_set_key(drv->ifname, drv, WPA_ALG_WEP,
+                                               bcast, i,
                                                i == params->wep_tx_keyidx,
                                                NULL, 0, params->wep_key[i],
                                                params->wep_key_len[i]);
@@ -3221,7 +3222,6 @@ const struct wpa_driver_ops wpa_driver_ndis_ops = {
        NULL /* hapd_deinit */,
        NULL /* set_ieee8021x */,
        NULL /* set_privacy */,
-       NULL /* hapd_set_key */,
        NULL /* get_seqnum */,
        NULL /* get_seqnum_igtk */,
        NULL /* flush */,
index d8bd72e7021a9d9873a6f23a703197d662385502..41ed4d06e2330cc2a3f4f344a4bd4fe3d3e4e036 100644 (file)
@@ -107,8 +107,8 @@ static int wpa_ndiswrapper_set_wpa(void *priv, int enabled)
        return ret;
 }
 
-static int wpa_ndiswrapper_set_key(void *priv, wpa_alg alg, const u8 *addr,
-                                  int key_idx, int set_tx,
+static int wpa_ndiswrapper_set_key(const char *ifname, void *priv, wpa_alg alg,
+                                  const u8 *addr, int key_idx, int set_tx,
                                   const u8 *seq, size_t seq_len,
                                   const u8 *key, size_t key_len)
 {
@@ -142,8 +142,8 @@ static int wpa_ndiswrapper_set_key(void *priv, wpa_alg alg, const u8 *addr,
                 * did not associate. Try to make sure the keys are cleared so
                 * that plaintext APs can be used in all cases.
                 */
-               wpa_driver_wext_set_key(drv->wext, alg, addr, key_idx, set_tx,
-                                       seq, seq_len, key, key_len);
+               wpa_driver_wext_set_key(ifname, drv->wext, alg, addr, key_idx,
+                                       set_tx, seq, seq_len, key, key_len);
        }
 
        return ret;
index 37f2a4395ded146488374b0af8fe7e237f5ae06a..db653f04aa518b7e3a214a63cfb2e223823737a4 100644 (file)
@@ -1726,11 +1726,14 @@ nla_put_failure:
 }
 
 
-static int nl_set_encr(int ifindex, struct wpa_driver_nl80211_data *drv,
-                      wpa_alg alg, const u8 *addr, int key_idx, int set_tx,
-                      const u8 *seq, size_t seq_len,
-                      const u8 *key, size_t key_len)
+static int wpa_driver_nl80211_set_key(const char *ifname, void *priv,
+                                     wpa_alg alg, const u8 *addr, int key_idx,
+                                     int set_tx,
+                                     const u8 *seq, size_t seq_len,
+                                     const u8 *key, size_t key_len)
 {
+       struct wpa_driver_nl80211_data *drv = priv;
+       int ifindex = if_nametoindex(ifname);
        struct nl_msg *msg;
        int ret;
 
@@ -1942,18 +1945,6 @@ nla_put_failure:
 }
 
 
-static int wpa_driver_nl80211_set_key(void *priv, wpa_alg alg,
-                                     const u8 *addr, int key_idx,
-                                     int set_tx, const u8 *seq,
-                                     size_t seq_len,
-                                     const u8 *key, size_t key_len)
-{
-       struct wpa_driver_nl80211_data *drv = priv;
-       return nl_set_encr(drv->ifindex, drv, alg, addr, key_idx, set_tx, seq,
-                          seq_len, key, key_len);
-}
-
-
 static int wpa_driver_nl80211_mlme(struct wpa_driver_nl80211_data *drv,
                                   const u8 *addr, int cmd, u16 reason_code)
 {
@@ -2046,7 +2037,8 @@ retry:
        for (i = 0; i < 4; i++) {
                if (!params->wep_key[i])
                        continue;
-               wpa_driver_nl80211_set_key(drv, WPA_ALG_WEP, NULL, i,
+               wpa_driver_nl80211_set_key(drv->ifname, drv, WPA_ALG_WEP, NULL,
+                                          i,
                                           i == params->wep_tx_keyidx, NULL, 0,
                                           params->wep_key[i],
                                           params->wep_key_len[i]);
@@ -3746,16 +3738,6 @@ static int have_ifidx(struct wpa_driver_nl80211_data *drv, int ifidx)
 }
 
 
-static int i802_set_key(const char *iface, void *priv, wpa_alg alg,
-                       const u8 *addr, int key_idx, int set_tx, const u8 *seq,
-                       size_t seq_len, const u8 *key, size_t key_len)
-{
-       struct wpa_driver_nl80211_data *drv = priv;
-       return nl_set_encr(if_nametoindex(iface), drv, alg, addr, key_idx,
-                          set_tx, seq, seq_len, key, key_len);
-}
-
-
 static inline int min_int(int a, int b)
 {
        if (a < b)
@@ -4404,7 +4386,6 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = {
 #ifdef HOSTAPD
        .hapd_init = i802_init,
        .hapd_deinit = i802_deinit,
-       .hapd_set_key = i802_set_key,
        .get_seqnum = i802_get_seqnum,
        .flush = i802_flush,
        .read_sta_data = i802_read_sta_data,
index c43aeccd717d73b1be4bcfac164eeff388ef9110..2e0d7cda4c2cb9f83defc16bcc847d666799c8e1 100644 (file)
@@ -199,10 +199,11 @@ prism54_sta_set_flags(void *priv, const u8 *addr, int total_flags,
 }
 
 
-static int prism54_set_key(const char *ifname, void *priv, wpa_alg alg,
-                          const u8 *addr, int key_idx, int set_tx,
-                          const u8 *seq, size_t seq_len,
-                          const u8 *key, size_t key_len)
+static int wpa_driver_prism54_set_key(const char *ifname, void *priv,
+                                     wpa_alg alg, const u8 *addr, int key_idx,
+                                     int set_tx,
+                                     const u8 *seq, size_t seq_len,
+                                     const u8 *key, size_t key_len)
 {
        struct prism54_driver_data *drv = priv;
        pimdev_hdr *hdr;
@@ -1159,7 +1160,8 @@ static int wpa_driver_prism54_set_wpa(void *priv, int enabled)
 }
 
 
-static int wpa_driver_prism54_set_key(void *priv, wpa_alg alg,
+static int wpa_driver_prism54_set_key(const char *ifname, void *priv,
+                                     wpa_alg alg,
                                      const u8 *addr, int key_idx, int set_tx,
                                      const u8 *seq, size_t seq_len,
                                      const u8 *key, size_t key_len)
@@ -1419,12 +1421,12 @@ static void wpa_driver_prism54_deinit(void *priv)
 const struct wpa_driver_ops wpa_driver_prism54_ops = {
        .name = "prism54",
        .desc = "Prism54.org driver (Intersil Prism GT/Duette/Indigo)",
+       .set_key = wpa_driver_prism54_set_key,
 #ifdef HOSTAPD
        .hapd_init = prism54_driver_init,
        .hapd_deinit = prism54_driver_deinit,
        /* .set_ieee8021x = prism54_init_1x, */
        .set_privacy = prism54_set_privacy_invoked,
-       .hapd_set_key = prism54_set_key,
        .get_seqnum = prism54_get_seqnum,
        .flush = prism54_flush,
        .set_generic_elem = prism54_set_generic_elem,
@@ -1438,7 +1440,6 @@ const struct wpa_driver_ops wpa_driver_prism54_ops = {
        .get_bssid = wpa_driver_prism54_get_bssid,
        .get_ssid = wpa_driver_prism54_get_ssid,
        .set_wpa = wpa_driver_prism54_set_wpa,
-       .set_key = wpa_driver_prism54_set_key,
        .set_countermeasures = wpa_driver_prism54_set_countermeasures,
        .set_drop_unencrypted = wpa_driver_prism54_set_drop_unencrypted,
        .scan = wpa_driver_prism54_scan,
index ef9b5bd0a5daf249d7ab0f827f19ea713c7ce94c..0492369c22a3e720072864b4348fb8061ecd550f 100644 (file)
@@ -196,10 +196,11 @@ wpa_driver_privsep_get_scan_results2(void *priv)
 }
 
 
-static int wpa_driver_privsep_set_key(void *priv, wpa_alg alg, const u8 *addr,
-                                  int key_idx, int set_tx,
-                                  const u8 *seq, size_t seq_len,
-                                  const u8 *key, size_t key_len)
+static int wpa_driver_privsep_set_key(const char *ifname, void *priv,
+                                     wpa_alg alg, const u8 *addr,
+                                     int key_idx, int set_tx,
+                                     const u8 *seq, size_t seq_len,
+                                     const u8 *key, size_t key_len)
 {
        struct wpa_driver_privsep_data *drv = priv;
        struct privsep_cmd_set_key cmd;
index e9313cb33ef0976f5ec2d7c51f54ad39a5237da7..6b6e6eeab97d496656c2ddddcd127b70333e0043 100644 (file)
@@ -1241,7 +1241,8 @@ static int wpa_driver_ralink_add_wep(struct wpa_driver_ralink_data *drv,
        return res;
 }
 
-static int wpa_driver_ralink_set_key(void *priv, wpa_alg alg, const u8 *addr,
+static int wpa_driver_ralink_set_key(const char *ifname, void *priv,
+                                    wpa_alg alg, const u8 *addr,
                                     int key_idx, int set_tx,
                                     const u8 *seq, size_t seq_len,
                                     const u8 *key, size_t key_len)
index 555edcf8339c00e5f3cea8975ef81aabd4a069fc..bff76876d84834e17f30d3279b1967323a84610e 100644 (file)
@@ -1124,21 +1124,6 @@ static int test_driver_set_privacy(const char *ifname, void *priv, int enabled)
 }
 
 
-static int test_driver_set_key(const char *iface, void *priv, wpa_alg alg,
-                              const u8 *addr, int key_idx, int set_tx,
-                              const u8 *seq, size_t seq_len,
-                              const u8 *key, size_t key_len)
-{
-       wpa_printf(MSG_DEBUG, "%s(iface=%s alg=%d idx=%d set_tx=%d)",
-                  __func__, iface, alg, key_idx, set_tx);
-       if (addr)
-               wpa_printf(MSG_DEBUG, "   addr=" MACSTR, MAC2STR(addr));
-       if (key)
-               wpa_hexdump_key(MSG_DEBUG, "   key", key, key_len);
-       return 0;
-}
-
-
 static int test_driver_set_sta_vlan(void *priv, const u8 *addr,
                                    const char *ifname, int vlan_id)
 {
@@ -1457,22 +1442,20 @@ static struct wpa_scan_results * wpa_driver_test_get_scan_results2(void *priv)
 }
 
 
-static int wpa_driver_test_set_key(void *priv, wpa_alg alg, const u8 *addr,
-                                  int key_idx, int set_tx,
+static int wpa_driver_test_set_key(const char *ifname, void *priv, wpa_alg alg,
+                                  const u8 *addr, int key_idx, int set_tx,
                                   const u8 *seq, size_t seq_len,
                                   const u8 *key, size_t key_len)
 {
-       wpa_printf(MSG_DEBUG, "%s: priv=%p alg=%d key_idx=%d set_tx=%d",
-                  __func__, priv, alg, key_idx, set_tx);
-       if (addr) {
+       wpa_printf(MSG_DEBUG, "%s: ifname=%s priv=%p alg=%d key_idx=%d "
+                  "set_tx=%d",
+                  __func__, ifname, priv, alg, key_idx, set_tx);
+       if (addr)
                wpa_printf(MSG_DEBUG, "   addr=" MACSTR, MAC2STR(addr));
-       }
-       if (seq) {
+       if (seq)
                wpa_hexdump(MSG_DEBUG, "   seq", seq, seq_len);
-       }
-       if (key) {
-               wpa_hexdump(MSG_DEBUG, "   key", key, key_len);
-       }
+       if (key)
+               wpa_hexdump_key(MSG_DEBUG, "   key", key, key_len);
        return 0;
 }
 
@@ -2527,7 +2510,6 @@ const struct wpa_driver_ops wpa_driver_test_ops = {
        .valid_bss_mask = test_driver_valid_bss_mask,
        .hapd_set_ssid = test_driver_set_ssid,
        .set_privacy = test_driver_set_privacy,
-       .hapd_set_key = test_driver_set_key,
        .set_sta_vlan = test_driver_set_sta_vlan,
        .sta_add = test_driver_sta_add,
        .send_ether = test_driver_send_ether,
index a291813bbce44ca91e641489ae6c83209577e61b..01487b924c76a6ebebb5d0ef62298d9b4836579e 100644 (file)
@@ -1820,7 +1820,7 @@ static int wpa_driver_wext_set_key_ext(void *priv, wpa_alg alg,
  * This function uses SIOCSIWENCODEEXT by default, but tries to use
  * SIOCSIWENCODE if the extended ioctl fails when configuring a WEP key.
  */
-int wpa_driver_wext_set_key(void *priv, wpa_alg alg,
+int wpa_driver_wext_set_key(const char *ifname, void *priv, wpa_alg alg,
                            const u8 *addr, int key_idx,
                            int set_tx, const u8 *seq, size_t seq_len,
                            const u8 *key, size_t key_len)
index b89c2cb2fdfa882db53f8b4a2844d516c4d6a76d..caf3eff803641cf5be1459c73b81c4f3f3981079 100644 (file)
@@ -53,7 +53,7 @@ int wpa_driver_wext_get_ssid(void *priv, u8 *ssid);
 int wpa_driver_wext_set_ssid(void *priv, const u8 *ssid, size_t ssid_len);
 int wpa_driver_wext_set_freq(void *priv, int freq);
 int wpa_driver_wext_set_mode(void *priv, int mode);
-int wpa_driver_wext_set_key(void *priv, wpa_alg alg,
+int wpa_driver_wext_set_key(const char *ifname, void *priv, wpa_alg alg,
                            const u8 *addr, int key_idx,
                            int set_tx, const u8 *seq, size_t seq_len,
                            const u8 *key, size_t key_len);
index bd6de06659daa112fbfef94d6143d4efdb1c5770..4a7707a24da5102cf957dc5dd1fe850835a81b44 100644 (file)
@@ -160,9 +160,9 @@ static inline int wpa_drv_set_key(struct wpa_supplicant *wpa_s, wpa_alg alg,
 {
        if (wpa_s->driver->set_key) {
                wpa_s->keys_cleared = 0;
-               return wpa_s->driver->set_key(wpa_s->drv_priv, alg, addr,
-                                             key_idx, set_tx, seq, seq_len,
-                                             key, key_len);
+               return wpa_s->driver->set_key(wpa_s->ifname, wpa_s->drv_priv,
+                                             alg, addr, key_idx, set_tx,
+                                             seq, seq_len, key, key_len);
        }
        return -1;
 }