diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2009-01-05 22:26:58 +0100 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2009-01-05 22:26:58 +0100 |
commit | 9de932200a6f5b7bce5015bd2faee005da77e225 (patch) | |
tree | b769312094bcc452acdbd43ef8d506ccfbb4970b /src | |
parent | c60ffbfbfe8bfedb7b75f94f5f042a206fb7940f (diff) | |
download | connman-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.c | 28 | ||||
-rw-r--r-- | src/element.c | 11 |
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); |