hostapd: Fix internal crypto build without TLS
[wpasupplicant] / wpa_supplicant / wpa_priv.c
index 8ad20ca..4d4224c 100644 (file)
@@ -575,10 +575,21 @@ static void wpa_priv_cmd_set_mode(struct wpa_priv_interface *iface,
 }
 
 
+static void wpa_priv_cmd_set_country(struct wpa_priv_interface *iface,
+                                    char *buf)
+{
+       if (iface->drv_priv == NULL || iface->driver->set_country == NULL ||
+           *buf == '\0')
+               return;
+
+       iface->driver->set_country(iface->drv_priv, buf);
+}
+
+
 static void wpa_priv_receive(int sock, void *eloop_ctx, void *sock_ctx)
 {
        struct wpa_priv_interface *iface = eloop_ctx;
-       char buf[2000];
+       char buf[2000], *pos;
        void *cmd_buf;
        size_t cmd_len;
        int res, cmd;
@@ -649,6 +660,13 @@ static void wpa_priv_receive(int sock, void *eloop_ctx, void *sock_ctx)
        case PRIVSEP_CMD_SET_MODE:
                wpa_priv_cmd_set_mode(iface, cmd_buf, cmd_len);
                break;
+       case PRIVSEP_CMD_SET_COUNTRY:
+               pos = cmd_buf;
+               if (pos + cmd_len >= buf + sizeof(buf))
+                       break;
+               pos[cmd_len] = '\0';
+               wpa_priv_cmd_set_country(iface, pos);
+               break;
        }
 }
 
@@ -674,7 +692,7 @@ static void wpa_priv_interface_deinit(struct wpa_priv_interface *iface)
 }
 
 
-extern struct wpa_driver_ops *wpa_supplicant_drivers[];
+extern struct wpa_driver_ops *wpa_drivers[];
 
 static struct wpa_priv_interface *
 wpa_priv_interface_init(const char *dir, const char *params)
@@ -703,10 +721,10 @@ wpa_priv_interface_init(const char *dir, const char *params)
        os_memcpy(iface->driver_name, params, len);
        iface->driver_name[len] = '\0';
 
-       for (i = 0; wpa_supplicant_drivers[i]; i++) {
+       for (i = 0; wpa_drivers[i]; i++) {
                if (os_strcmp(iface->driver_name,
-                             wpa_supplicant_drivers[i]->name) == 0) {
-                       iface->driver = wpa_supplicant_drivers[i];
+                             wpa_drivers[i]->name) == 0) {
+                       iface->driver = wpa_drivers[i];
                        break;
                }
        }
@@ -1032,23 +1050,6 @@ void wpa_supplicant_rx_eapol(void *ctx, const u8 *src_addr,
 
 
 #ifdef CONFIG_CLIENT_MLME
-void wpa_supplicant_sta_free_hw_features(struct wpa_hw_modes *hw_features,
-                                        size_t num_hw_features)
-{
-       size_t i;
-
-       if (hw_features == NULL)
-               return;
-
-       for (i = 0; i < num_hw_features; i++) {
-               os_free(hw_features[i].channels);
-               os_free(hw_features[i].rates);
-       }
-
-       os_free(hw_features);
-}
-
-
 void wpa_supplicant_sta_rx(void *ctx, const u8 *buf, size_t len,
                           struct ieee80211_rx_status *rx_status)
 {