--- src/dhcpv6.c | 113 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 62 insertions(+), 51 deletions(-)
diff --git a/src/dhcpv6.c b/src/dhcpv6.c index bf764c8..f0889ac 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -278,25 +278,28 @@ static void info_req_cb(GDHCPClient *dhcp_client, gpointer user_data) if (nameservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) nameservers[i] = g_strdup(list->data); - } - if (compare_string_arrays(nameservers, dhcp->nameservers) == FALSE) { - if (dhcp->nameservers != NULL) { - for (i = 0; dhcp->nameservers[i] != NULL; i++) - __connman_service_nameserver_remove(service, + if (compare_string_arrays(nameservers, dhcp->nameservers) + == FALSE) { + if (dhcp->nameservers != NULL) { + for (i = 0; dhcp->nameservers[i] != NULL; i++) + __connman_service_nameserver_remove( + service, dhcp->nameservers[i], FALSE); - g_strfreev(dhcp->nameservers); - } + g_strfreev(dhcp->nameservers); + } + + dhcp->nameservers = nameservers; - dhcp->nameservers = nameservers; + for (i = 0; dhcp->nameservers[i] != NULL; i++) + __connman_service_nameserver_append(service, + dhcp->nameservers[i], + FALSE); + } else + g_strfreev(nameservers); - for (i = 0; dhcp->nameservers[i] != NULL; i++) - __connman_service_nameserver_append(service, - dhcp->nameservers[i], - FALSE); - } else - g_strfreev(nameservers); + } option = g_dhcp_client_get_option(dhcp_client, G_DHCPV6_SNTP_SERVERS); @@ -306,23 +309,25 @@ static void info_req_cb(GDHCPClient *dhcp_client, gpointer user_data) if (timeservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) timeservers[i] = g_strdup(list->data); - } - if (compare_string_arrays(timeservers, dhcp->timeservers) == FALSE) { - if (dhcp->timeservers != NULL) { - for (i = 0; dhcp->timeservers[i] != NULL; i++) - __connman_service_timeserver_remove(service, - dhcp->timeservers[i]); - g_strfreev(dhcp->timeservers); - } + if (compare_string_arrays(timeservers, dhcp->timeservers) + == FALSE) { + if (dhcp->timeservers != NULL) { + for (i = 0; dhcp->timeservers[i] != NULL; i++) + __connman_service_timeserver_remove( + service, dhcp->timeservers[i]); + g_strfreev(dhcp->timeservers); + } - dhcp->timeservers = timeservers; + dhcp->timeservers = timeservers; - for (i = 0; dhcp->timeservers[i] != NULL; i++) - __connman_service_timeserver_append(service, + for (i = 0; dhcp->timeservers[i] != NULL; i++) + __connman_service_timeserver_append(service, dhcp->timeservers[i]); - } else - g_strfreev(timeservers); + } else + g_strfreev(timeservers); + + } if (dhcp->callback != NULL) { @@ -456,25 +461,28 @@ static int set_addresses(GDHCPClient *dhcp_client, if (nameservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) nameservers[i] = g_strdup(list->data); - } - if (compare_string_arrays(nameservers, dhcp->nameservers) == FALSE) { - if (dhcp->nameservers != NULL) { - for (i = 0; dhcp->nameservers[i] != NULL; i++) - __connman_service_nameserver_remove(service, + if (compare_string_arrays(nameservers, dhcp->nameservers) + == FALSE) { + if (dhcp->nameservers != NULL) { + for (i = 0; dhcp->nameservers[i] != NULL; i++) + __connman_service_nameserver_remove( + service, dhcp->nameservers[i], FALSE); - g_strfreev(dhcp->nameservers); - } + g_strfreev(dhcp->nameservers); + } - dhcp->nameservers = nameservers; + dhcp->nameservers = nameservers; - for (i = 0; dhcp->nameservers[i] != NULL; i++) - __connman_service_nameserver_append(service, + for (i = 0; dhcp->nameservers[i] != NULL; i++) + __connman_service_nameserver_append(service, dhcp->nameservers[i], FALSE); - } else - g_strfreev(nameservers); + } else + g_strfreev(nameservers); + + } option = g_dhcp_client_get_option(dhcp_client, G_DHCPV6_SNTP_SERVERS); @@ -484,23 +492,26 @@ static int set_addresses(GDHCPClient *dhcp_client, if (timeservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) timeservers[i] = g_strdup(list->data); - } - if (compare_string_arrays(timeservers, dhcp->timeservers) == FALSE) { - if (dhcp->timeservers != NULL) { - for (i = 0; dhcp->timeservers[i] != NULL; i++) - __connman_service_timeserver_remove(service, + if (compare_string_arrays(timeservers, dhcp->timeservers) + == FALSE) { + if (dhcp->timeservers != NULL) { + for (i = 0; dhcp->timeservers[i] != NULL; i++) + __connman_service_timeserver_remove( + service, dhcp->timeservers[i]); - g_strfreev(dhcp->timeservers); - } + g_strfreev(dhcp->timeservers); + } - dhcp->timeservers = timeservers; + dhcp->timeservers = timeservers; - for (i = 0; dhcp->timeservers[i] != NULL; i++) - __connman_service_timeserver_append(service, + for (i = 0; dhcp->timeservers[i] != NULL; i++) + __connman_service_timeserver_append(service, dhcp->timeservers[i]); - } else - g_strfreev(timeservers); + } else + g_strfreev(timeservers); + + } option = g_dhcp_client_get_option(dhcp_client, G_DHCPV6_IA_NA); -- 1.7.5.4 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman