Add support for retrieving proxy auto configuration URL
authorMarcel Holtmann <marcel@holtmann.org>
Mon, 20 Sep 2010 00:59:27 +0000 (09:59 +0900)
committerMarcel Holtmann <marcel@holtmann.org>
Mon, 20 Sep 2010 00:59:27 +0000 (09:59 +0900)
include/service.h
src/connman.h
src/ipconfig.c
src/service.c

index 170cd6c..51eab48 100644 (file)
@@ -93,6 +93,8 @@ void connman_service_unref(struct connman_service *service);
 enum connman_service_type connman_service_get_type(struct connman_service *service);
 char *connman_service_get_interface(struct connman_service *service);
 
+const char *connman_service_get_proxy_autoconfig(struct connman_service *service);
+
 #ifdef __cplusplus
 }
 #endif
index 4fd5753..f26514a 100644 (file)
@@ -255,6 +255,7 @@ int __connman_ipconfig_clear_address(struct connman_ipconfig *ipconfig);
 
 int __connman_ipconfig_set_proxy_autoconfig(struct connman_ipconfig *ipconfig,
                                                        const char *url);
+const char *__connman_ipconfig_get_proxy_autoconfig(struct connman_ipconfig *ipconfig);
 
 int __connman_ipconfig_load(struct connman_ipconfig *ipconfig,
                GKeyFile *keyfile, const char *identifier, const char *prefix);
index 66442a2..90efb6a 100644 (file)
@@ -1210,6 +1210,23 @@ int __connman_ipconfig_set_proxy_autoconfig(struct connman_ipconfig *ipconfig,
        return 0;
 }
 
+const char *__connman_ipconfig_get_proxy_autoconfig(struct connman_ipconfig *ipconfig)
+{
+       struct connman_ipdevice *ipdevice;
+
+       DBG("ipconfig %p", ipconfig);
+
+       if (ipconfig == NULL || ipconfig->index < 0)
+               return NULL;
+
+       ipdevice = g_hash_table_lookup(ipdevice_hash,
+                                       GINT_TO_POINTER(ipconfig->index));
+       if (ipdevice == NULL)
+               return NULL;
+
+       return ipdevice->pac;
+}
+
 int __connman_ipconfig_enable(struct connman_ipconfig *ipconfig)
 {
        struct connman_ipdevice *ipdevice;
index 0495a61..b22edb1 100644 (file)
@@ -1369,6 +1369,14 @@ void __connman_service_set_proxy_autoconfig(struct connman_service *service,
        proxy_changed(service);
 }
 
+const char *connman_service_get_proxy_autoconfig(struct connman_service *service)
+{
+       if (service == NULL)
+               return NULL;
+
+       return __connman_ipconfig_get_proxy_autoconfig(service->ipconfig);
+}
+
 static DBusMessage *get_properties(DBusConnection *conn,
                                        DBusMessage *msg, void *user_data)
 {