X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=tools%2Fdhcp-test.c;h=a6c3e9931d4d0f3de9fd6f3d062d3eda82a1fdd2;hb=b397386967c5057c4dcf73f63f7ffa16141efea4;hp=cf4ff71d7f1ce3563dabd62efd72cdec635e4f26;hpb=61b8dec235b4981e07683fe28aa5e44543e4e07f;p=platform%2Fupstream%2Fconnman.git diff --git a/tools/dhcp-test.c b/tools/dhcp-test.c old mode 100644 new mode 100755 index cf4ff71..a6c3e99 --- a/tools/dhcp-test.c +++ b/tools/dhcp-test.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 @@ -33,10 +33,11 @@ #include #include #include -#include #include +#include "../src/connman.h" + static GTimer *timer; static GMainLoop *main_loop; @@ -46,16 +47,9 @@ static void sig_term(int sig) g_main_loop_quit(main_loop); } -static void print_timestamp(void) +static void print_elapsed(void) { - GTimeVal timestamp; gdouble elapsed; - char *str; - - g_get_current_time(×tamp); - str = g_time_val_to_iso8601(×tamp); - printf("=== %s ===\n", str); - g_free(str); elapsed = g_timer_elapsed(timer, NULL); @@ -91,9 +85,9 @@ static void handle_error(GDHCPClientError error) static void no_lease_cb(GDHCPClient *dhcp_client, gpointer user_data) { - printf("No Lease Available!\n"); + print_elapsed(); - print_timestamp(); + printf("No lease available\n"); g_main_loop_quit(main_loop); } @@ -103,9 +97,13 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) GList *list, *option_value = NULL; char *address; + print_elapsed(); + + printf("Lease available\n"); + address = g_dhcp_client_get_address(dhcp_client); printf("address %s\n", address); - if (address == NULL) + if (!address) return; option_value = g_dhcp_client_get_option(dhcp_client, G_DHCP_SUBNET); @@ -116,6 +114,10 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) for (list = option_value; list; list = list->next) printf("domain-name-servers %s\n", (char *) list->data); + option_value = g_dhcp_client_get_option(dhcp_client, G_DHCP_DOMAIN_NAME); + for (list = option_value; list; list = list->next) + printf("domain-name %s\n", (char *) list->data); + option_value = g_dhcp_client_get_option(dhcp_client, G_DHCP_ROUTER); for (list = option_value; list; list = list->next) printf("routers %s\n", (char *) list->data); @@ -123,8 +125,6 @@ static void lease_available_cb(GDHCPClient *dhcp_client, gpointer user_data) option_value = g_dhcp_client_get_option(dhcp_client, G_DHCP_HOST_NAME); for (list = option_value; list; list = list->next) printf("hostname %s\n", (char *) list->data); - - print_timestamp(); } int main(int argc, char *argv[]) @@ -143,10 +143,8 @@ int main(int argc, char *argv[]) printf("Create DHCP client for interface %d\n", index); - timer = g_timer_new(); - dhcp_client = g_dhcp_client_new(G_DHCP_IPV4, index, &error); - if (dhcp_client == NULL) { + if (!dhcp_client) { handle_error(error); exit(0); } @@ -156,6 +154,7 @@ int main(int argc, char *argv[]) g_dhcp_client_set_request(dhcp_client, G_DHCP_HOST_NAME); g_dhcp_client_set_request(dhcp_client, G_DHCP_SUBNET); g_dhcp_client_set_request(dhcp_client, G_DHCP_DNS_SERVER); + g_dhcp_client_set_request(dhcp_client, G_DHCP_DOMAIN_NAME); g_dhcp_client_set_request(dhcp_client, G_DHCP_NTP_SERVER); g_dhcp_client_set_request(dhcp_client, G_DHCP_ROUTER); @@ -168,24 +167,28 @@ int main(int argc, char *argv[]) main_loop = g_main_loop_new(NULL, FALSE); - print_timestamp(); - printf("Start DHCP operation\n"); - g_dhcp_client_start(dhcp_client); + timer = g_timer_new(); + + g_dhcp_client_start(dhcp_client, NULL); memset(&sa, 0, sizeof(sa)); sa.sa_handler = sig_term; sigaction(SIGINT, &sa, NULL); sigaction(SIGTERM, &sa, NULL); + __connman_util_init(); + g_main_loop_run(main_loop); + __connman_util_cleanup(); + + g_timer_destroy(timer); + g_dhcp_client_unref(dhcp_client); g_main_loop_unref(main_loop); - g_timer_destroy(timer); - return 0; }