summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorLeena Gunda <leena.gunda@wipro.com>2010-10-29 01:12:21 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-10-29 10:40:37 +0200
commit0663c1943f5cbbcb7e887d9f312b77059ed21ca5 (patch)
tree4406e43eb9198d93d67c2bc401e7cb5d41f88c38 /gsupplicant
parentf94c4e6632bd41537b48a63ce672f1935adc41fe (diff)
downloadconnman-0663c1943f5cbbcb7e887d9f312b77059ed21ca5.tar.gz
connman-0663c1943f5cbbcb7e887d9f312b77059ed21ca5.tar.bz2
connman-0663c1943f5cbbcb7e887d9f312b77059ed21ca5.zip
gsupplicant: Start wpa_supplicant daemon through introspection request
Fixes BMC#8750
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/supplicant.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 715bb203..375a3780 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -2393,6 +2393,23 @@ static const char *g_supplicant_rule5 = "type=signal,"
static const char *g_supplicant_rule6 = "type=signal,"
"interface=" SUPPLICANT_INTERFACE ".Interface.Blob";
+static void invoke_introspect_method(void)
+{
+ DBusMessage *message;
+
+ message = dbus_message_new_method_call(SUPPLICANT_SERVICE,
+ SUPPLICANT_PATH,
+ DBUS_INTERFACE_INTROSPECTABLE,
+ "Introspect");
+
+ if (message == NULL)
+ return;
+
+ dbus_message_set_no_reply(message, TRUE);
+ dbus_connection_send(connection, message, NULL);
+ dbus_message_unref(message);
+}
+
int g_supplicant_register(const GSupplicantCallbacks *callbacks)
{
connection = dbus_bus_get(DBUS_BUS_SYSTEM, NULL);
@@ -2432,7 +2449,8 @@ int g_supplicant_register(const GSupplicantCallbacks *callbacks)
supplicant_dbus_property_get_all(SUPPLICANT_PATH,
SUPPLICANT_INTERFACE,
service_property, NULL);
- }
+ } else
+ invoke_introspect_method();
return 0;
}