summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2010-07-29 19:05:51 -0700
committerMarcel Holtmann <marcel@holtmann.org>2010-07-29 19:05:51 -0700
commitfdd5851b672523bbc976d1ae787926a80e6e0ecf (patch)
tree1a90f2d5e98301ff6be6721b6a549b0b4cc0819e
parent742468fb58a593e15f7bf0029f31fb3104008819 (diff)
downloadconnman-fdd5851b672523bbc976d1ae787926a80e6e0ecf.tar.gz
connman-fdd5851b672523bbc976d1ae787926a80e6e0ecf.tar.bz2
connman-fdd5851b672523bbc976d1ae787926a80e6e0ecf.zip
Store host and domain names retrieved from DHCP
-rw-r--r--include/element.h3
-rw-r--r--src/dhcp.c4
-rw-r--r--src/element.c2
3 files changed, 9 insertions, 0 deletions
diff --git a/include/element.h b/include/element.h
index 4161d7e8..05aa06d0 100644
--- a/include/element.h
+++ b/include/element.h
@@ -98,6 +98,9 @@ struct connman_element {
GHashTable *properties;
+ gchar *hostname;
+ gchar *domainname;
+
struct {
enum connman_ipconfig_method method;
gchar *address;
diff --git a/src/dhcp.c b/src/dhcp.c
index e8bab4fb..6fccc3cb 100644
--- a/src/dhcp.c
+++ b/src/dhcp.c
@@ -124,8 +124,12 @@ void connman_dhcp_set_value(struct connman_dhcp *dhcp,
dhcp->element->ipv4.nameserver = g_strdup(nameservers[0]);
g_strfreev(nameservers);
} 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);
diff --git a/src/element.c b/src/element.c
index 5e28a0b7..209ee9c1 100644
--- a/src/element.c
+++ b/src/element.c
@@ -642,6 +642,8 @@ void connman_element_unref(struct connman_element *element)
element->destruct(element);
free_children(element);
free_properties(element);
+ g_free(element->hostname);
+ g_free(element->domainname);
g_free(element->ipv4.address);
g_free(element->ipv4.netmask);
g_free(element->ipv4.gateway);