X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fdhcp.c;h=f4de736a5ab45ad56b92da888d5f892f6c7b7d03;hb=53b7e1339c05b178697e611f881594ed78c02d65;hp=f84e394c432e87fb50b6e9d8cc4213d2d157e5d2;hpb=411a7737b71270e3c2dff756bd73c8aa2e1d1059;p=framework%2Fconnectivity%2Fconnman.git diff --git a/src/dhcp.c b/src/dhcp.c index f84e394..f4de736 100644 --- a/src/dhcp.c +++ b/src/dhcp.c @@ -2,7 +2,7 @@ * * Connection Manager * - * Copyright (C) 2007-2010 Intel Corporation. All rights reserved. + * Copyright (C) 2007-2012 Intel Corporation. All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as @@ -244,8 +244,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) ip_change = FALSE; option = g_dhcp_client_get_option(dhcp_client, G_DHCP_DNS_SERVER); - for (ns_entries = 0, list = option; list; list = list->next) - ns_entries += 1; + ns_entries = g_list_length(option); nameservers = g_try_new0(char *, ns_entries + 1); if (nameservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) @@ -262,8 +261,7 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) hostname = g_strdup(option->data); option = g_dhcp_client_get_option(dhcp_client, G_DHCP_NTP_SERVER); - for (ns_entries = 0, list = option; list; list = list->next) - ns_entries += 1; + ns_entries = g_list_length(option); timeservers = g_try_new0(char *, ns_entries + 1); if (timeservers != NULL) { for (i = 0, list = option; list; list = list->next, i++) @@ -294,7 +292,8 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) dhcp->nameservers = nameservers; - for (i = 0; dhcp->nameservers[i] != NULL; i++) { + for (i = 0; dhcp->nameservers != NULL && + dhcp->nameservers[i] != NULL; i++) { __connman_service_nameserver_append(service, dhcp->nameservers[i], FALSE); } @@ -313,7 +312,8 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) dhcp->timeservers = timeservers; - for (i = 0; dhcp->timeservers[i] != NULL; i++) { + for (i = 0; dhcp->timeservers != NULL && + dhcp->timeservers[i] != NULL; i++) { __connman_service_timeserver_append(service, dhcp->timeservers[i]); } @@ -407,6 +407,8 @@ static int dhcp_request(struct connman_dhcp *dhcp) if (getenv("CONNMAN_DHCP_DEBUG")) g_dhcp_client_set_debug(dhcp_client, dhcp_debug, "DHCP"); + g_dhcp_client_set_id(dhcp_client); + hostname = connman_utsname_get_hostname(); if (hostname != NULL) g_dhcp_client_set_send(dhcp_client, G_DHCP_HOST_NAME, hostname);