From f70d1758c876780c9dabe5b717550a54b194aab3 Mon Sep 17 00:00:00 2001 From: Marcel Holtmann Date: Thu, 7 Aug 2008 10:23:16 +0200 Subject: [PATCH] Add properties to the profile interface --- src/profile.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ test/Makefile.am | 2 +- test/list-profiles | 22 ++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100755 test/list-profiles diff --git a/src/profile.c b/src/profile.c index 223ea43..057ece7 100644 --- a/src/profile.c +++ b/src/profile.c @@ -37,7 +37,52 @@ void __connman_profile_list(DBusMessageIter *iter) dbus_message_iter_append_basic(iter, DBUS_TYPE_OBJECT_PATH, &path); } +static void append_string(DBusMessageIter *dict, const char *key, void *val) +{ + DBusMessageIter entry, value; + + dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY, + NULL, &entry); + + dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key); + + dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT, + DBUS_TYPE_STRING_AS_STRING, &value); + dbus_message_iter_append_basic(&value, DBUS_TYPE_STRING, val); + dbus_message_iter_close_container(&entry, &value); + + dbus_message_iter_close_container(dict, &entry); +} + +static DBusMessage *get_properties(DBusConnection *conn, + DBusMessage *msg, void *data) +{ + const char *name = "Default"; + DBusMessage *reply; + DBusMessageIter array, dict; + + DBG("conn %p", conn); + + reply = dbus_message_new_method_return(msg); + if (reply == NULL) + return NULL; + + dbus_message_iter_init_append(reply, &array); + + dbus_message_iter_open_container(&array, DBUS_TYPE_ARRAY, + DBUS_DICT_ENTRY_BEGIN_CHAR_AS_STRING + DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING + DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict); + + append_string(&dict, "Name", &name); + + dbus_message_iter_close_container(&array, &dict); + + return reply; +} + static GDBusMethodTable profile_methods[] = { + { "GetProperties", "", "a{sv}", get_properties }, { }, }; diff --git a/test/Makefile.am b/test/Makefile.am index 0833552..9b640ea 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,5 +1,5 @@ -EXTRA_DIST = list-elements monitor-elements monitor-state \ +EXTRA_DIST = list-profiles list-elements monitor-elements monitor-state \ start-scanning select-network disable-network simple-agent \ get-state show-introspection test-compat test-supplicant diff --git a/test/list-profiles b/test/list-profiles new file mode 100755 index 0000000..fcf1830 --- /dev/null +++ b/test/list-profiles @@ -0,0 +1,22 @@ +#!/usr/bin/python + +import dbus + +bus = dbus.SystemBus() + +manager = dbus.Interface(bus.get_object("org.moblin.connman", "/"), + "org.moblin.connman.Manager") + +profiles = manager.ListProfiles() + +for path in profiles: + print "[ %s ]" % (path) + + element = dbus.Interface(bus.get_object("org.moblin.connman", path), + "org.moblin.connman.Profile") + + properties = element.GetProperties() + for key in properties.keys(): + print " %s = %s" % (key, properties[key]) + + print -- 2.7.4