diff options
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/service.c b/src/service.c index ddb9fcb5..2970ad07 100644 --- a/src/service.c +++ b/src/service.c @@ -440,6 +440,26 @@ static void append_ipv4config(DBusMessageIter *iter, void *user_data) __connman_ipconfig_append_ipv4config(service->ipconfig, iter); } +static void append_proxy(DBusMessageIter *iter, void *user_data) +{ + struct connman_service *service = user_data; + + switch (service->state) { + case CONNMAN_SERVICE_STATE_UNKNOWN: + case CONNMAN_SERVICE_STATE_IDLE: + case CONNMAN_SERVICE_STATE_FAILURE: + case CONNMAN_SERVICE_STATE_DISCONNECT: + case CONNMAN_SERVICE_STATE_ASSOCIATION: + case CONNMAN_SERVICE_STATE_CONFIGURATION: + return; + case CONNMAN_SERVICE_STATE_READY: + break; + } + + if (service->ipconfig != NULL) + __connman_ipconfig_append_proxy(service->ipconfig, iter); +} + static void settings_changed(struct connman_service *service) { connman_dbus_property_changed_dict(service->path, @@ -597,6 +617,8 @@ static DBusMessage *get_properties(DBusConnection *conn, connman_dbus_dict_append_dict(&dict, "IPv4.Configuration", append_ipv4config, service); + connman_dbus_dict_append_dict(&dict, "Proxy", append_proxy, service); + connman_dbus_dict_close(&array, &dict); return reply; |