vpn-provider: Send ConnectionAdded signal when needed
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Mon, 12 Nov 2012 12:07:42 +0000 (14:07 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 23 Nov 2012 10:58:51 +0000 (12:58 +0200)
vpn/vpn-provider.c

index 300ce85..c46c9b4 100644 (file)
@@ -1225,6 +1225,25 @@ static void append_properties(DBusMessageIter *iter,
        connman_dbus_dict_close(iter, &dict);
 }
 
+static void connection_added_signal(struct vpn_provider *provider)
+{
+       DBusMessage *signal;
+       DBusMessageIter iter;
+
+       signal = dbus_message_new_signal(VPN_MANAGER_PATH,
+                       VPN_MANAGER_INTERFACE, "ConnectionAdded");
+       if (signal == NULL)
+               return;
+
+       dbus_message_iter_init_append(signal, &iter);
+       dbus_message_iter_append_basic(&iter, DBUS_TYPE_OBJECT_PATH,
+                                                       &provider->path);
+       append_properties(&iter, provider);
+
+       dbus_connection_send(connection, signal, NULL);
+       dbus_message_unref(signal);
+}
+
 static connman_bool_t check_host(char **hosts, char *host)
 {
        int i;
@@ -1664,6 +1683,8 @@ int __vpn_provider_create(DBusMessage *msg)
                                DBUS_TYPE_OBJECT_PATH, &provider->path,
                                DBUS_TYPE_INVALID);
 
+       connection_added_signal(provider);
+
        return 0;
 }