Make use of generic D-Bus helpers
authorMarcel Holtmann <marcel@holtmann.org>
Fri, 17 Oct 2008 03:38:30 +0000 (05:38 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 17 Oct 2008 03:38:30 +0000 (05:38 +0200)
plugins/supplicant.c
src/element.c

index d72b838..de56f8d 100644 (file)
@@ -27,6 +27,7 @@
 #include <dbus/dbus.h>
 
 #include <connman/log.h>
+#include <connman/dbus.h>
 
 #include "inet.h"
 #include "supplicant.h"
@@ -474,63 +475,6 @@ static int disable_network(struct supplicant_task *task)
        return 0;
 }
 
-static void append_entry(DBusMessageIter *dict,
-                               const char *key, int type, void *val)
-{
-       DBusMessageIter entry, value;
-       const char *signature;
-
-       dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY,
-                                                               NULL, &entry);
-
-       dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
-
-       switch (type) {
-       case DBUS_TYPE_STRING:
-               signature = DBUS_TYPE_STRING_AS_STRING;
-               break;
-       case DBUS_TYPE_UINT16:
-               signature = DBUS_TYPE_UINT16_AS_STRING;
-               break;
-       default:
-               signature = DBUS_TYPE_VARIANT_AS_STRING;
-               break;
-       }
-
-       dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
-                                                       signature, &value);
-       dbus_message_iter_append_basic(&value, type, val);
-       dbus_message_iter_close_container(&entry, &value);
-
-       dbus_message_iter_close_container(dict, &entry);
-}
-
-static void append_array(DBusMessageIter *dict,
-                               const char *key, int type, void *val, int len)
-{
-       DBusMessageIter entry, value, array;
-
-       if (type != DBUS_TYPE_BYTE)
-               return;
-
-       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_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING, &value);
-
-       dbus_message_iter_open_container(&value, DBUS_TYPE_ARRAY,
-                                       DBUS_TYPE_BYTE_AS_STRING, &array);
-       dbus_message_iter_append_fixed_array(&array, type, val, len);
-       dbus_message_iter_close_container(&value, &array);
-
-       dbus_message_iter_close_container(&entry, &value);
-
-       dbus_message_iter_close_container(dict, &entry);
-}
-
 static int set_network(struct supplicant_task *task,
                                        const unsigned char *network, int len,
                                                        const char *passphrase)
@@ -556,15 +500,19 @@ static int set_network(struct supplicant_task *task,
                        DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING
                        DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict);
 
-       append_array(&dict, "ssid", DBUS_TYPE_BYTE, &network, len);
+       connman_dbus_dict_append_array(&dict, "ssid",
+                                       DBUS_TYPE_BYTE, &network, len);
 
        if (passphrase && strlen(passphrase) > 0) {
                const char *key_mgmt = "WPA-PSK";
-               append_entry(&dict, "key_mgmt", DBUS_TYPE_STRING, &key_mgmt);
-               append_entry(&dict, "psk", DBUS_TYPE_STRING, &passphrase);
+               connman_dbus_dict_append_variant(&dict, "key_mgmt",
+                                               DBUS_TYPE_STRING, &key_mgmt);
+               connman_dbus_dict_append_variant(&dict, "psk",
+                                               DBUS_TYPE_STRING, &passphrase);
        } else {
                const char *key_mgmt = "NONE";
-               append_entry(&dict, "key_mgmt", DBUS_TYPE_STRING, &key_mgmt);
+               connman_dbus_dict_append_variant(&dict, "key_mgmt",
+                                               DBUS_TYPE_STRING, &key_mgmt);
        }
 
        dbus_message_iter_close_container(&array, &dict);
index 83a9e9e..cb513ec 100644 (file)
@@ -144,79 +144,6 @@ static const char *subtype2string(enum connman_element_subtype type)
        return NULL;
 }
 
-static void append_array(DBusMessageIter *dict,
-                               const char *key, int type, void *val, int len)
-{
-       DBusMessageIter entry, value, array;
-       const char *variant_sig, *array_sig;
-
-       switch (type) {
-       case DBUS_TYPE_BYTE:
-               variant_sig = DBUS_TYPE_ARRAY_AS_STRING DBUS_TYPE_BYTE_AS_STRING;
-               array_sig = DBUS_TYPE_BYTE_AS_STRING;
-               break;
-       default:
-               return;
-       }
-
-       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,
-                                                       variant_sig, &value);
-
-       dbus_message_iter_open_container(&value, DBUS_TYPE_ARRAY,
-                                                       array_sig, &array);
-       dbus_message_iter_append_fixed_array(&array, type, val, len);
-       dbus_message_iter_close_container(&value, &array);
-
-       dbus_message_iter_close_container(&entry, &value);
-
-       dbus_message_iter_close_container(dict, &entry);
-}
-
-static void append_entry(DBusMessageIter *dict,
-                               const char *key, int type, void *val)
-{
-       DBusMessageIter entry, value;
-       const char *signature;
-
-       dbus_message_iter_open_container(dict, DBUS_TYPE_DICT_ENTRY,
-                                                               NULL, &entry);
-
-       dbus_message_iter_append_basic(&entry, DBUS_TYPE_STRING, &key);
-
-       switch (type) {
-       case DBUS_TYPE_BOOLEAN:
-               signature = DBUS_TYPE_BOOLEAN_AS_STRING;
-               break;
-       case DBUS_TYPE_STRING:
-               signature = DBUS_TYPE_STRING_AS_STRING;
-               break;
-       case DBUS_TYPE_UINT16:
-               signature = DBUS_TYPE_UINT16_AS_STRING;
-               break;
-       case DBUS_TYPE_UINT32:
-               signature = DBUS_TYPE_UINT32_AS_STRING;
-               break;
-       case DBUS_TYPE_OBJECT_PATH:
-               signature = DBUS_TYPE_OBJECT_PATH_AS_STRING;
-               break;
-       default:
-               signature = DBUS_TYPE_VARIANT_AS_STRING;
-               break;
-       }
-
-       dbus_message_iter_open_container(&entry, DBUS_TYPE_VARIANT,
-                                                       signature, &value);
-       dbus_message_iter_append_basic(&value, type, val);
-       dbus_message_iter_close_container(&entry, &value);
-
-       dbus_message_iter_close_container(dict, &entry);
-}
-
 static void append_property(DBusMessageIter *dict,
                                struct connman_property *property)
 {
@@ -224,11 +151,11 @@ static void append_property(DBusMessageIter *dict,
                return;
 
        if (property->type == DBUS_TYPE_ARRAY)
-               append_array(dict, property->name, property->subtype,
-                                       &property->value, property->size);
+               connman_dbus_dict_append_array(dict, property->name,
+                       property->subtype, &property->value, property->size);
        else
-               append_entry(dict, property->name, property->type,
-                                                       &property->value);
+               connman_dbus_dict_append_variant(dict, property->name,
+                                       property->type, &property->value);
 }
 
 static DBusMessage *get_properties(DBusConnection *conn,
@@ -255,31 +182,34 @@ static DBusMessage *get_properties(DBusConnection *conn,
 
        if (element->parent != NULL &&
                        element->parent->type != CONNMAN_ELEMENT_TYPE_ROOT) {
-               append_entry(&dict, "Parent",
+               connman_dbus_dict_append_variant(&dict, "Parent",
                                DBUS_TYPE_OBJECT_PATH, &element->parent->path);
        }
 
        str = type2string(element->type);
        if (str != NULL)
-               append_entry(&dict, "Type", DBUS_TYPE_STRING, &str);
+               connman_dbus_dict_append_variant(&dict, "Type",
+                                               DBUS_TYPE_STRING, &str);
        str = subtype2string(element->subtype);
        if (str != NULL)
-               append_entry(&dict, "Subtype", DBUS_TYPE_STRING, &str);
+               connman_dbus_dict_append_variant(&dict, "Subtype",
+                                               DBUS_TYPE_STRING, &str);
 
-       append_entry(&dict, "Enabled", DBUS_TYPE_BOOLEAN, &element->enabled);
+       connman_dbus_dict_append_variant(&dict, "Enabled",
+                                       DBUS_TYPE_BOOLEAN, &element->enabled);
 
        if (element->priority > 0)
-               append_entry(&dict, "Priority",
-                               DBUS_TYPE_UINT16, &element->priority);
+               connman_dbus_dict_append_variant(&dict, "Priority",
+                                       DBUS_TYPE_UINT16, &element->priority);
 
        if (element->ipv4.address != NULL)
-               append_entry(&dict, "IPv4.Address",
+               connman_dbus_dict_append_variant(&dict, "IPv4.Address",
                                DBUS_TYPE_STRING, &element->ipv4.address);
        if (element->ipv4.netmask != NULL)
-               append_entry(&dict, "IPv4.Netmask",
+               connman_dbus_dict_append_variant(&dict, "IPv4.Netmask",
                                DBUS_TYPE_STRING, &element->ipv4.netmask);
        if (element->ipv4.gateway != NULL)
-               append_entry(&dict, "IPv4.Gateway",
+               connman_dbus_dict_append_variant(&dict, "IPv4.Gateway",
                                DBUS_TYPE_STRING, &element->ipv4.gateway);
 
        connman_element_lock(element);