summaryrefslogtreecommitdiff
path: root/src/provider.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-08-21 01:32:24 +0200
committerSamuel Ortiz <sameo@linux.intel.com>2010-08-21 01:32:24 +0200
commit1ae8e82266c19ba83a9fb87f12241c1c200a594f (patch)
tree678582078cf5e552d2266ad6e672826c339e58dd /src/provider.c
parent166ef127b4ea769c27811ede5f010d67de759051 (diff)
downloadconnman-1ae8e82266c19ba83a9fb87f12241c1c200a594f.tar.gz
connman-1ae8e82266c19ba83a9fb87f12241c1c200a594f.tar.bz2
connman-1ae8e82266c19ba83a9fb87f12241c1c200a594f.zip
Fix VPN nameservers parsing
Diffstat (limited to 'src/provider.c')
-rw-r--r--src/provider.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/provider.c b/src/provider.c
index 705f911d..57816ec6 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -241,7 +241,8 @@ static int set_connected(struct connman_provider *provider,
enum connman_element_type type = CONNMAN_ELEMENT_TYPE_UNKNOWN;
struct connman_element *element;
char *nameservers = NULL, *name = NULL;
- const char *value, *first;
+ const char *value;
+ char *second_ns;
int err;
__connman_service_indicate_state(provider->vpn_service,
@@ -271,11 +272,16 @@ static int set_connected(struct connman_provider *provider,
__connman_service_set_domainname(service, provider->domain);
+ name = connman_inet_ifname(provider->element.index);
+
nameservers = g_strdup(provider->dns);
value = nameservers;
- first = strchr(value, ' ');
- __connman_service_append_nameserver(service, first);
- name = connman_inet_ifname(provider->element.index);
+ second_ns = strchr(value, ' ');
+ if (second_ns)
+ *(second_ns++) = 0;
+ __connman_service_append_nameserver(service, value);
+ value = second_ns;
+
while (value) {
char *next = strchr(value, ' ');
if (next)