[PATCH] DBus : Add Reconnect command to Dbus Interface.

MAYANK HAARIT mayank.h at samsung.com
Fri Jun 12 07:27:19 EDT 2015


Signed-off-by: Mayank Haarit <mayank.h at samsung.com>
Signed-off-by: Purushottam Kushwaha <p.kushwaha at samsung.com>
---
 doc/dbus.doxygen                        |   11 +++++++++++
 wpa_supplicant/dbus/dbus_new.c          |    6 ++++++
 wpa_supplicant/dbus/dbus_new_handlers.c |   20 ++++++++++++++++++++
 wpa_supplicant/dbus/dbus_new_handlers.h |    3 +++
 4 files changed, 40 insertions(+), 0 deletions(-)

diff --git a/doc/dbus.doxygen b/doc/dbus.doxygen
index 6a6e91a..90cc9d7 100644
--- a/doc/dbus.doxygen
+++ b/doc/dbus.doxygen
@@ -305,6 +305,17 @@ fi.w1.wpa_supplicant1.CreateInterface.
 	  <dd>Interface is not connected to any network.</dd>
 	</dl>
       </li>
+	
+      <li> 
+        <h3>Reconnect ( ) --> nothing</h3>
+        <p>Attempt reconnection and connect if in disconnected state.</p>
+        <h4>Possible errors</h4>
+        <dl> 
+          <dt>fi.w1.wpa_supplicant1.InterfaceDisabled</dt>
+          <dd>The interface is disabled.</dd>
+        </dl>
+      </li>
+
 
       <li>
 	<h3>AddBlob ( s : name, ay : data ) --> nothing</h3>
diff --git a/wpa_supplicant/dbus/dbus_new.c b/wpa_supplicant/dbus/dbus_new.c
index fb674d4..3aa08df 100644
--- a/wpa_supplicant/dbus/dbus_new.c
+++ b/wpa_supplicant/dbus/dbus_new.c
@@ -2552,6 +2552,12 @@ static const struct wpa_dbus_method_desc wpas_dbus_interface_methods[] = {
 		  END_ARGS
 	  }
 	},
+	{ "Reconnect", WPAS_DBUS_NEW_IFACE_INTERFACE,
+          (WPADBusMethodHandler) wpas_dbus_handler_reconnect,
+          {    
+                  END_ARGS
+          }    
+        },
 	{ "RemoveNetwork", WPAS_DBUS_NEW_IFACE_INTERFACE,
 	  (WPADBusMethodHandler) wpas_dbus_handler_remove_network,
 	  {
diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
index 97db9a8..b32f8d6 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers.c
@@ -1599,6 +1599,26 @@ DBusMessage * wpas_dbus_handler_reattach(DBusMessage *message,
 				      "This interface is not connected");
 }
 
+/**
+ * wpas_dbus_handler_reconnect - Reconnect
+ * @message: Pointer to incoming dbus message
+ * @wpa_s: wpa_supplicant structure for a network interface
+ * Returns: InterfaceDisabled DBus error message if disabled
+ * or NULL otherwise.
+ *
+ * Handler function for "Reconnect" method call of network interface.
+ */
+DBusMessage * wpas_dbus_handler_reconnect(DBusMessage *message,
+		struct wpa_supplicant *wpa_s)
+{       
+	if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
+		return dbus_message_new_error(message, WPAS_DBUS_ERROR_IFACE_DISABLED,
+				"This interface is disabled");
+	} 
+	else if (wpa_s->disconnected)
+		wpas_request_connection(wpa_s);
+	return NULL;
+}
 
 /**
  * wpas_dbus_handler_remove_network - Remove a configured network
diff --git a/wpa_supplicant/dbus/dbus_new_handlers.h b/wpa_supplicant/dbus/dbus_new_handlers.h
index 9afdc05..23f2659 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers.h
+++ b/wpa_supplicant/dbus/dbus_new_handlers.h
@@ -107,6 +107,9 @@ DBusMessage * wpas_dbus_handler_reassociate(DBusMessage *message,
 DBusMessage * wpas_dbus_handler_reattach(DBusMessage *message,
 					 struct wpa_supplicant *wpa_s);
 
+DBusMessage * wpas_dbus_handler_reconnect(DBusMessage *message,
+					    struct wpa_supplicant *wpa_s);
+
 DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message,
 					       struct wpa_supplicant *wpa_s);
 
-- 
1.7.0.4


More information about the HostAP mailing list