summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-01-05 22:26:58 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-01-05 22:26:58 +0100
commit9de932200a6f5b7bce5015bd2faee005da77e225 (patch)
treeb769312094bcc452acdbd43ef8d506ccfbb4970b /src
parentc60ffbfbfe8bfedb7b75f94f5f042a206fb7940f (diff)
downloadconnman-9de932200a6f5b7bce5015bd2faee005da77e225.tar.gz
connman-9de932200a6f5b7bce5015bd2faee005da77e225.tar.bz2
connman-9de932200a6f5b7bce5015bd2faee005da77e225.zip
Add support for IPv4 details in connection interface
Diffstat (limited to 'src')
-rw-r--r--src/connection.c28
-rw-r--r--src/element.c11
2 files changed, 39 insertions, 0 deletions
diff --git a/src/connection.c b/src/connection.c
index 79ae34de..01a84cc0 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -205,6 +205,8 @@ static DBusMessage *get_properties(DBusConnection *conn,
struct connman_element *element = data;
DBusMessage *reply;
DBusMessageIter array, dict;
+ const char *method = NULL;
+ const char *address = NULL, *netmask = NULL, *gateway = NULL;
DBG("conn %p", conn);
@@ -226,6 +228,32 @@ static DBusMessage *get_properties(DBusConnection *conn,
connman_dbus_dict_append_variant(&dict, "Default",
DBUS_TYPE_BOOLEAN, &element->enabled);
+ connman_element_get_value(element,
+ CONNMAN_PROPERTY_ID_IPV4_METHOD, &method);
+
+ connman_element_get_value(element,
+ CONNMAN_PROPERTY_ID_IPV4_ADDRESS, &address);
+ connman_element_get_value(element,
+ CONNMAN_PROPERTY_ID_IPV4_NETMASK, &netmask);
+ connman_element_get_value(element,
+ CONNMAN_PROPERTY_ID_IPV4_GATEWAY, &gateway);
+
+ if (method != NULL)
+ connman_dbus_dict_append_variant(&dict, "IPv4.Method",
+ DBUS_TYPE_STRING, &method);
+
+ if (address != NULL)
+ connman_dbus_dict_append_variant(&dict, "IPv4.Address",
+ DBUS_TYPE_STRING, &address);
+
+ if (netmask != NULL)
+ connman_dbus_dict_append_variant(&dict, "IPv4.Netmask",
+ DBUS_TYPE_STRING, &netmask);
+
+ if (gateway != NULL)
+ connman_dbus_dict_append_variant(&dict, "IPv4.Gateway",
+ DBUS_TYPE_STRING, &gateway);
+
dbus_message_iter_close_container(&array, &dict);
return reply;
diff --git a/src/element.c b/src/element.c
index 129fa62d..a81f7550 100644
--- a/src/element.c
+++ b/src/element.c
@@ -1005,6 +1005,14 @@ int connman_element_get_value(struct connman_element *element,
return -EINVAL;
switch (id) {
+ case CONNMAN_PROPERTY_ID_IPV4_METHOD:
+ if (element->ipv4.method == CONNMAN_IPV4_METHOD_UNKNOWN)
+ return connman_element_get_value(element->parent,
+ id, value);
+ __connman_element_lock(element);
+ *((const char **) value) = __connman_ipv4_method2string(element->ipv4.method);
+ __connman_element_unlock(element);
+ break;
case CONNMAN_PROPERTY_ID_IPV4_ADDRESS:
if (element->ipv4.address == NULL)
return connman_element_get_value(element->parent,
@@ -1351,6 +1359,9 @@ int connman_element_register(struct connman_element *element,
}
}
+ if (element->type == CONNMAN_ELEMENT_TYPE_DHCP)
+ element->ipv4.method = CONNMAN_IPV4_METHOD_DHCP;
+
element->parent = parent;
__connman_element_unlock(element);