summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArron Wang <arron.wang@intel.com>2012-10-09 16:20:45 +0800
committerZhang zhengguang <zhengguang.zhang@intel.com>2013-07-01 11:30:31 +0800
commit3e078e46d0cba52b4fc04c62085bd82fbd4fab26 (patch)
tree7aad82010c53db2393ee1ac5235d0d72f86c326b
parent74aa0e84aeb9c42960b4ffd095516c9ac0673aa5 (diff)
downloadconnman-3e078e46d0cba52b4fc04c62085bd82fbd4fab26.tar.gz
connman-3e078e46d0cba52b4fc04c62085bd82fbd4fab26.tar.bz2
connman-3e078e46d0cba52b4fc04c62085bd82fbd4fab26.zip
Tizen: Export network proxy API for telephony plugin
Telephony plug-in requires manual PROXY setting function Telephony stack provides proxy address (3G profile).
-rw-r--r--include/network.h3
-rw-r--r--src/connman.h4
-rw-r--r--src/network.c18
-rw-r--r--src/service.c16
4 files changed, 41 insertions, 0 deletions
diff --git a/include/network.h b/include/network.h
index 613bd402..9d7f5f90 100644
--- a/include/network.h
+++ b/include/network.h
@@ -132,6 +132,9 @@ unsigned int connman_network_get_maxrate(struct connman_network *network);
int connman_network_set_enc_mode(struct connman_network *network,
const char *encryption_mode);
const char *connman_network_get_enc_mode(struct connman_network *network);
+
+int connman_network_set_proxy(struct connman_network *network,
+ const char *proxies);
#endif
int connman_network_set_name(struct connman_network *network,
diff --git a/src/connman.h b/src/connman.h
index 1e6bfec9..c61a872f 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -675,6 +675,10 @@ void __connman_service_timeserver_changed(struct connman_service *service,
GSList *ts_list);
void __connman_service_set_pac(struct connman_service *service,
const char *pac);
+#if defined TIZEN_EXT
+void __connman_service_set_proxy(struct connman_service *service,
+ const char *proxies);
+#endif
connman_bool_t __connman_service_is_hidden(struct connman_service *service);
connman_bool_t __connman_service_is_split_routing(struct connman_service *service);
int __connman_service_get_index(struct connman_service *service);
diff --git a/src/network.c b/src/network.c
index 5df3e123..789925a6 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1770,6 +1770,24 @@ const char *connman_network_get_enc_mode(struct connman_network *network)
return (const char *)network->wifi.encryption_mode;
}
+int connman_network_set_proxy(struct connman_network *network,
+ const char *proxies)
+{
+ struct connman_service *service;
+
+ DBG("network %p proxies %s", network, proxies);
+
+ service = connman_service_lookup_from_network(network);
+ if (service == NULL)
+ return -EINVAL;
+
+ __connman_service_set_proxy(service, proxies);
+
+ connman_service_set_proxy_method(service,
+ CONNMAN_SERVICE_PROXY_METHOD_MANUAL);
+
+ return 0;
+}
#endif
int connman_network_set_nameservers(struct connman_network *network,
diff --git a/src/service.c b/src/service.c
index 0bb77afc..12d167f6 100644
--- a/src/service.c
+++ b/src/service.c
@@ -2739,6 +2739,22 @@ void __connman_service_set_pac(struct connman_service *service,
proxy_changed(service);
}
+#if defined TIZEN_EXT
+void __connman_service_set_proxy(struct connman_service *service,
+ const char *proxies)
+{
+ char **proxies_array = NULL;
+
+ g_strfreev(service->proxies);
+ service->proxies = NULL;
+
+ if (proxies != NULL)
+ proxies_array = g_strsplit(proxies, " ", 0);
+
+ service->proxies = proxies_array;
+}
+#endif
+
void __connman_service_set_identity(struct connman_service *service,
const char *identity)
{