]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Simplify code in wpas_p2p_connect()
authorJohannes Berg <johannes.berg@intel.com>
Fri, 18 Nov 2011 21:32:03 +0000 (23:32 +0200)
committerJouni Malinen <j@w1.fi>
Fri, 18 Nov 2011 21:32:03 +0000 (23:32 +0200)
There's some duplicated code there that can be simplified
with just a single new variable.

Signed-hostap: Johannes Berg <johannes.berg@intel.com>

wpa_supplicant/p2p_supplicant.c

index 18686e5984a8bed802b4e5576d7d2548779e2ffb..9cb385fdfc285eedf9fbb7aa5ade87403be084c8 100644 (file)
@@ -2670,6 +2670,7 @@ int wpas_p2p_connect(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
        u8 bssid[ETH_ALEN];
        int ret = 0;
        enum wpa_driver_if_type iftype;
+       const u8 *if_addr;
 
        if (wpa_s->global->p2p_disabled || wpa_s->global->p2p == NULL)
                return -1;
@@ -2765,44 +2766,34 @@ int wpas_p2p_connect(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
 
        wpa_s->create_p2p_iface = wpas_p2p_create_iface(wpa_s);
 
-       if (!wpa_s->create_p2p_iface) {
-               if (auth) {
-                       if (wpas_p2p_auth_go_neg(wpa_s, peer_addr, wps_method,
-                                                go_intent, wpa_s->own_addr,
-                                                force_freq, persistent_group)
-                           < 0)
-                               return -1;
-                       return ret;
-               }
-               if (wpas_p2p_start_go_neg(wpa_s, peer_addr, wps_method,
-                                         go_intent, wpa_s->own_addr,
-                                         force_freq, persistent_group) < 0)
+       if (wpa_s->create_p2p_iface) {
+               /* Prepare to add a new interface for the group */
+               iftype = WPA_IF_P2P_GROUP;
+               if (go_intent == 15)
+                       iftype = WPA_IF_P2P_GO;
+               if (wpas_p2p_add_group_interface(wpa_s, iftype) < 0) {
+                       wpa_printf(MSG_ERROR, "P2P: Failed to allocate a new "
+                                  "interface for the group");
                        return -1;
-               return ret;
-       }
+               }
 
-       /* Prepare to add a new interface for the group */
-       iftype = WPA_IF_P2P_GROUP;
-       if (go_intent == 15)
-               iftype = WPA_IF_P2P_GO;
-       if (wpas_p2p_add_group_interface(wpa_s, iftype) < 0) {
-               wpa_printf(MSG_ERROR, "P2P: Failed to allocate a new "
-                          "interface for the group");
-               return -1;
-       }
+               if_addr = wpa_s->pending_interface_addr;
+       } else
+               if_addr = wpa_s->own_addr;
 
        if (auth) {
                if (wpas_p2p_auth_go_neg(wpa_s, peer_addr, wps_method,
-                                        go_intent,
-                                        wpa_s->pending_interface_addr,
+                                        go_intent, if_addr,
                                         force_freq, persistent_group) < 0)
                        return -1;
                return ret;
        }
-       if (wpas_p2p_start_go_neg(wpa_s, peer_addr, wps_method, go_intent,
-                                 wpa_s->pending_interface_addr,
-                                 force_freq, persistent_group) < 0) {
-               wpas_p2p_remove_pending_group_interface(wpa_s);
+
+       if (wpas_p2p_start_go_neg(wpa_s, peer_addr, wps_method,
+                                 go_intent, if_addr, force_freq,
+                                 persistent_group) < 0) {
+               if (wpa_s->create_p2p_iface)
+                       wpas_p2p_remove_pending_group_interface(wpa_s);
                return -1;
        }
        return ret;