diff options
author | Samuel Ortiz <sameo@linux.intel.com> | 2010-08-21 01:32:24 +0200 |
---|---|---|
committer | Samuel Ortiz <sameo@linux.intel.com> | 2010-08-21 01:32:24 +0200 |
commit | 1ae8e82266c19ba83a9fb87f12241c1c200a594f (patch) | |
tree | 678582078cf5e552d2266ad6e672826c339e58dd /src/provider.c | |
parent | 166ef127b4ea769c27811ede5f010d67de759051 (diff) | |
download | connman-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.c | 14 |
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) |