Store host and domain names retrieved from DHCP
authorMarcel Holtmann <marcel@holtmann.org>
Fri, 30 Jul 2010 02:05:51 +0000 (19:05 -0700)
committerMarcel Holtmann <marcel@holtmann.org>
Fri, 30 Jul 2010 02:05:51 +0000 (19:05 -0700)
include/element.h
src/dhcp.c
src/element.c

index 4161d7e..05aa06d 100644 (file)
@@ -98,6 +98,9 @@ struct connman_element {
 
        GHashTable *properties;
 
+       gchar *hostname;
+       gchar *domainname;
+
        struct {
                enum connman_ipconfig_method method;
                gchar *address;
index e8bab4f..6fccc3c 100644 (file)
@@ -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);
index 5e28a0b..209ee9c 100644 (file)
@@ -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);