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);
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)
{
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;