summaryrefslogtreecommitdiff
path: root/vpn/vpn-provider.c
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-11-12 14:07:42 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-11-23 12:58:51 +0200
commitae693881d0d2bac1d9edea534918b6cc238b06ce (patch)
tree424942a4fbf0faf141580c031586f77c48d6c4c3 /vpn/vpn-provider.c
parentefcc517183f672af421d8a09dedef5c9c0d16f64 (diff)
downloadconnman-ae693881d0d2bac1d9edea534918b6cc238b06ce.tar.gz
connman-ae693881d0d2bac1d9edea534918b6cc238b06ce.tar.bz2
connman-ae693881d0d2bac1d9edea534918b6cc238b06ce.zip
vpn-provider: Send ConnectionAdded signal when needed
Diffstat (limited to 'vpn/vpn-provider.c')
-rw-r--r--vpn/vpn-provider.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/vpn/vpn-provider.c b/vpn/vpn-provider.c
index 300ce85a..c46c9b41 100644
--- a/vpn/vpn-provider.c
+++ b/vpn/vpn-provider.c
@@ -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;
}