X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fconnection.c;h=ad38147074c53a5fff48d12f02b04aabeac6653c;hb=refs%2Ftags%2F0.7;hp=212242e19655c8b2fedf4c592042831d4e9b7a55;hpb=8c525f8122631321a7170ce9409baca706d1aea3;p=connman diff --git a/src/connection.c b/src/connection.c index 212242e..ad38147 100644 --- a/src/connection.c +++ b/src/connection.c @@ -205,9 +205,16 @@ static DBusMessage *get_properties(DBusConnection *conn, struct connman_element *element = data; DBusMessage *reply; DBusMessageIter array, dict; + connman_uint8_t strength = 0; + const char *type = NULL, *method = NULL; + const char *address = NULL, *netmask = NULL, *gateway = NULL; DBG("conn %p", conn); + if (__connman_security_check_privilege(msg, + CONNMAN_SECURITY_PRIVILEGE_PUBLIC) < 0) + return __connman_error_permission_denied(msg); + reply = dbus_message_new_method_return(msg); if (reply == NULL) return NULL; @@ -219,10 +226,50 @@ static DBusMessage *get_properties(DBusConnection *conn, DBUS_TYPE_STRING_AS_STRING DBUS_TYPE_VARIANT_AS_STRING DBUS_DICT_ENTRY_END_CHAR_AS_STRING, &dict); + connman_element_get_static_property(element, "Type", &type); + + if (type != NULL) + connman_dbus_dict_append_variant(&dict, "Type", + DBUS_TYPE_STRING, &type); + + connman_element_get_static_property(element, "Strength", &strength); + if (strength > 0) + connman_dbus_dict_append_variant(&dict, "Strength", + DBUS_TYPE_BYTE, &strength); + if (element->devname != NULL) connman_dbus_dict_append_variant(&dict, "Interface", DBUS_TYPE_STRING, &element->devname); + 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; @@ -243,7 +290,8 @@ static DBusMessage *set_property(DBusConnection *conn, dbus_message_iter_next(&iter); dbus_message_iter_recurse(&iter, &value); - if (__connman_security_check_privileges(msg) < 0) + if (__connman_security_check_privilege(msg, + CONNMAN_SECURITY_PRIVILEGE_MODIFY) < 0) return __connman_error_permission_denied(msg); return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);