summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-07-29 19:26:37 -0700
committerMarcel Holtmann <marcel@holtmann.org>2010-07-29 19:26:37 -0700
commitaff3c197d176482c40b1726421bbaf1c97c5b5c2 (patch)
tree81ffede84ea9c9648f0a9a349f49f92b972018ae /src
parent82e198ecf9744b199bb2e6c122ff9d0bdbd47702 (diff)
downloadconnman-aff3c197d176482c40b1726421bbaf1c97c5b5c2.tar.gz
connman-aff3c197d176482c40b1726421bbaf1c97c5b5c2.tar.bz2
connman-aff3c197d176482c40b1726421bbaf1c97c5b5c2.zip
Update service domain name when connection becomes active
Diffstat (limited to 'src')
-rw-r--r--src/connection.c12
-rw-r--r--src/dhcp.c2
2 files changed, 11 insertions, 3 deletions
diff --git a/src/connection.c b/src/connection.c
index 319024ff..bf11493a 100644
--- a/src/connection.c
+++ b/src/connection.c
@@ -109,7 +109,7 @@ static struct gateway_data *add_gateway(int index, const char *gateway,
struct gateway_data *data;
struct connman_service *service;
- DBG("index %d gateway %s ipv6_gateway %s", index, gateway,
+ DBG("index %d ipv4 gateway %s ipv6 gateway %s", index, gateway,
ipv6_gateway);
if (strlen(gateway) == 0)
@@ -263,6 +263,7 @@ static int connection_probe(struct connman_element *element)
struct connman_service *service = NULL;
const char *gateway = NULL, *ipv6_gateway = NULL;
const char *vpn_ip = NULL;
+ const char *domainname = NULL;
struct gateway_data *active_gateway = NULL;
struct gateway_data *new_gateway = NULL;
@@ -281,9 +282,13 @@ static int connection_probe(struct connman_element *element)
CONNMAN_PROPERTY_ID_IPV6_GATEWAY, &ipv6_gateway);
connman_element_get_value(element,
- CONNMAN_PROPERTY_ID_IPV4_ADDRESS, &vpn_ip);
+ CONNMAN_PROPERTY_ID_IPV4_ADDRESS, &vpn_ip);
- DBG("gateway %s, ipv6_gateway %s", gateway, ipv6_gateway);
+ connman_element_get_value(element,
+ CONNMAN_PROPERTY_ID_DOMAINNAME, &domainname);
+
+ DBG("ipv4 gateway %s ipv6 gateway %s domainname %s",
+ gateway, ipv6_gateway, domainname);
/*
* If gateway is NULL, it's a point to point link and the default
@@ -309,6 +314,7 @@ static int connection_probe(struct connman_element *element)
new_gateway->ipv4_gateway, NULL);
__connman_service_nameserver_add_routes(service,
new_gateway->ipv4_gateway);
+ __connman_service_set_domainname(service, domainname);
__connman_service_indicate_state(service, CONNMAN_SERVICE_STATE_READY);
diff --git a/src/dhcp.c b/src/dhcp.c
index 6fccc3cb..13ad8bf2 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -126,10 +126,12 @@ void connman_dhcp_set_value(struct connman_dhcp *dhcp,
} else if (g_strcmp0(key, "Domainname") == 0) {
g_free(dhcp->element->domainname);
dhcp->element->domainname = g_strdup(value);
+
__connman_utsname_set_domainname(value);
} else if (g_strcmp0(key, "Hostname") == 0) {
g_free(dhcp->element->hostname);
dhcp->element->hostname = g_strdup(value);
+
__connman_utsname_set_hostname(value);
} else if (g_strcmp0(key, "Timeserver") == 0) {
g_free(dhcp->element->ipv4.timeserver);