]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
Use a shared function for requesting a new connection
authorJouni Malinen <j@w1.fi>
Sun, 25 Nov 2012 14:30:30 +0000 (16:30 +0200)
committerJouni Malinen <j@w1.fi>
Sun, 25 Nov 2012 14:30:30 +0000 (16:30 +0200)
Both the ctrl_iface and D-Bus interface use similar functionality to
request a new connection. Combine these to a single function to avoid
need to maintain duplicated implementation.

Signed-hostap: Jouni Malinen <j@w1.fi>

wpa_supplicant/ctrl_iface.c
wpa_supplicant/dbus/dbus_new_handlers.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index 328d382fa6800fb3f539529f4ad87221d1afde61..2de847490bb48872df6250ac226014dac0330400 100644 (file)
@@ -4781,27 +4781,15 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
        } else if (os_strcmp(buf, "LOGOFF") == 0) {
                eapol_sm_notify_logoff(wpa_s->eapol, TRUE);
        } else if (os_strcmp(buf, "REASSOCIATE") == 0) {
-               wpa_s->normal_scans = 0;
-               wpa_supplicant_reinit_autoscan(wpa_s);
                if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED)
                        reply_len = -1;
-               else {
-                       wpa_s->extra_blacklist_count = 0;
-                       wpa_s->disconnected = 0;
-                       wpa_s->reassociate = 1;
-                       wpa_supplicant_req_scan(wpa_s, 0, 0);
-               }
+               else
+                       wpas_request_connection(wpa_s);
        } else if (os_strcmp(buf, "RECONNECT") == 0) {
-               wpa_s->normal_scans = 0;
-               wpa_supplicant_reinit_autoscan(wpa_s);
                if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED)
                        reply_len = -1;
-               else if (wpa_s->disconnected) {
-                       wpa_s->extra_blacklist_count = 0;
-                       wpa_s->disconnected = 0;
-                       wpa_s->reassociate = 1;
-                       wpa_supplicant_req_scan(wpa_s, 0, 0);
-               }
+               else if (wpa_s->disconnected)
+                       wpas_request_connection(wpa_s);
 #ifdef IEEE8021X_EAPOL
        } else if (os_strncmp(buf, "PREAUTH ", 8) == 0) {
                if (wpa_supplicant_ctrl_iface_preauth(wpa_s, buf + 8))
index ce736678b6fea310c3ce0fd54e0bd4f50455d351..7d1572902b8bb50a2d48515cb5993f1b2bc832d5 100644 (file)
@@ -1455,13 +1455,7 @@ DBusMessage * wpas_dbus_handler_reassociate(DBusMessage *message,
                                            struct wpa_supplicant *wpa_s)
 {
        if (wpa_s->current_ssid != NULL) {
-               wpa_s->extra_blacklist_count = 0;
-               wpa_s->normal_scans = 0;
-               wpa_supplicant_reinit_autoscan(wpa_s);
-               wpa_s->disconnected = 0;
-               wpa_s->reassociate = 1;
-               wpa_supplicant_req_scan(wpa_s, 0, 0);
-
+               wpas_request_connection(wpa_s);
                return NULL;
        }
 
index 901057e9fffa85e0687cb32cd9c2570b86b721a2..784a47142b85c708dd73c5c38a88215c51b61789 100644 (file)
@@ -3716,3 +3716,22 @@ int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid,
 
        return 0;
 }
+
+
+/**
+ * wpas_request_connection - Request a new connection
+ * @wpa_s: Pointer to the network interface
+ *
+ * This function is used to request a new connection to be found. It will mark
+ * the interface to allow reassociation and request a new scan to find a
+ * suitable network to connect to.
+ */
+void wpas_request_connection(struct wpa_supplicant *wpa_s)
+{
+       wpa_s->normal_scans = 0;
+       wpa_supplicant_reinit_autoscan(wpa_s);
+       wpa_s->extra_blacklist_count = 0;
+       wpa_s->disconnected = 0;
+       wpa_s->reassociate = 1;
+       wpa_supplicant_req_scan(wpa_s, 0, 0);
+}
index 83eeb9c0bb5cbcab9411f6b7700a16f9a880177a..a92d0c1f4de2b1a3af4548c415aba5ae44dc9298 100644 (file)
@@ -754,6 +754,7 @@ void wpas_clear_temp_disabled(struct wpa_supplicant *wpa_s,
 int disallowed_bssid(struct wpa_supplicant *wpa_s, const u8 *bssid);
 int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid,
                    size_t ssid_len);
+void wpas_request_connection(struct wpa_supplicant *wpa_s);
 
 /**
  * wpa_supplicant_ctrl_iface_ctrl_rsp_handle - Handle a control response