Add support for exporting IP configuration properties
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 29 Jun 2009 19:44:19 +0000 (21:44 +0200)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 29 Jun 2009 19:44:19 +0000 (21:44 +0200)
src/connman.h
src/ipconfig.c
src/service.c

index 753c43f..d170a90 100644 (file)
@@ -90,6 +90,8 @@ int __connman_security_check_privilege(DBusMessage *message,
 const char *__connman_ipconfig_method2string(enum connman_ipconfig_method method);
 enum connman_ipconfig_method __connman_ipconfig_string2method(const char *method);
 
+void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
+                               DBusMessageIter *iter, const char *prefix);
 int __connman_ipconfig_set_ipv4(struct connman_ipconfig *ipconfig,
                                const char *key, DBusMessageIter *value);
 
index 79bed29..e272e39 100644 (file)
@@ -108,6 +108,35 @@ enum connman_ipconfig_method __connman_ipconfig_string2method(const char *method
                return CONNMAN_IPCONFIG_METHOD_UNKNOWN;
 }
 
+static void append_variant(DBusMessageIter *iter, const char *prefix,
+                                       const char *key, int type, void *val)
+{
+       char *str;
+
+       if (prefix == NULL) {
+               connman_dbus_dict_append_variant(iter, key, type, val);
+               return;
+       }
+
+       str = g_strdup_printf("%s%s", prefix, key);
+       if (str != NULL)
+               connman_dbus_dict_append_variant(iter, str, type, val);
+
+       g_free(str);
+}
+
+void __connman_ipconfig_append_ipv4(struct connman_ipconfig *ipconfig,
+                               DBusMessageIter *iter, const char *prefix)
+{
+       const char *str;
+
+       str = __connman_ipconfig_method2string(ipconfig->method);
+       if (str == NULL)
+               return;
+
+       append_variant(iter, prefix, "Method", DBUS_TYPE_STRING, &str);
+}
+
 int __connman_ipconfig_set_ipv4(struct connman_ipconfig *ipconfig,
                                const char *key, DBusMessageIter *value)
 {
index 0e2ee6d..002bc84 100644 (file)
@@ -296,6 +296,8 @@ static DBusMessage *get_properties(DBusConnection *conn,
                connman_dbus_dict_append_variant(&dict, "Passphrase",
                                DBUS_TYPE_STRING, &service->passphrase);
 
+       __connman_ipconfig_append_ipv4(service->ipconfig, &dict, "IPv4.");
+
        dbus_message_iter_close_container(&array, &dict);
 
        return reply;