Revert "Avoid build warnings for __connman_logs_s"
[platform/upstream/connman.git] / tools / resolv-test.c
old mode 100644 (file)
new mode 100755 (executable)
index 637c9e3..8953acd
@@ -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
 #include <string.h>
 #include <signal.h>
 
-#include <gresolv/gresolv.h>
+#include <gweb/gresolv.h>
 
-static GMainLoop *main_loop = NULL;
+static GTimer *timer;
+
+static GMainLoop *main_loop;
 
 static void resolv_debug(const char *str, void *data)
 {
@@ -42,14 +44,43 @@ static void sig_term(int sig)
        g_main_loop_quit(main_loop);
 }
 
+static const char *status2str(GResolvResultStatus status)
+{
+       switch (status) {
+       case G_RESOLV_RESULT_STATUS_SUCCESS:
+               return "success";
+       case G_RESOLV_RESULT_STATUS_ERROR:
+               return "error";
+       case G_RESOLV_RESULT_STATUS_NO_RESPONSE:
+               return "no response";
+       case G_RESOLV_RESULT_STATUS_FORMAT_ERROR:
+               return "format error";
+       case G_RESOLV_RESULT_STATUS_SERVER_FAILURE:
+               return "server failure";
+       case G_RESOLV_RESULT_STATUS_NAME_ERROR:
+               return "name error";
+       case G_RESOLV_RESULT_STATUS_NOT_IMPLEMENTED:
+               return "not implemented";
+       case G_RESOLV_RESULT_STATUS_REFUSED:
+               return "refused";
+       }
+
+       return NULL;
+}
+
 static void resolv_result(GResolvResultStatus status,
                                        char **results, gpointer user_data)
 {
+       gdouble elapsed;
        int i;
 
-       g_print("status: %d\n", status);
+       elapsed = g_timer_elapsed(timer, NULL);
+
+       g_print("elapse: %f seconds\n", elapsed);
 
-       if (results != NULL) {
+       g_print("status: %s\n", status2str(status));
+
+       if (results) {
                for (i = 0; results[i]; i++)
                        g_print("result: %s\n", results[i]);
        }
@@ -57,7 +88,7 @@ static void resolv_result(GResolvResultStatus status,
        g_main_loop_quit(main_loop);
 }
 
-static gboolean option_debug = FALSE;
+static bool option_debug = false;
 
 static GOptionEntry options[] = {
        { "debug", 'd', 0, G_OPTION_ARG_NONE, &option_debug,
@@ -76,8 +107,8 @@ int main(int argc, char *argv[])
        context = g_option_context_new(NULL);
        g_option_context_add_main_entries(context, options, NULL);
 
-       if (g_option_context_parse(context, &argc, &argv, &error) == FALSE) {
-               if (error != NULL) {
+       if (!g_option_context_parse(context, &argc, &argv, &error)) {
+               if (error) {
                        g_printerr("%s\n", error->message);
                        g_error_free(error);
                } else
@@ -93,12 +124,12 @@ int main(int argc, char *argv[])
        }
 
        resolv = g_resolv_new(index);
-       if (resolv == NULL) {
+       if (!resolv) {
                printf("failed to create resolver\n");
                return 1;
        }
 
-       if (option_debug == TRUE)
+       if (option_debug)
                g_resolv_set_debug(resolv, resolv_debug, "RESOLV");
 
        main_loop = g_main_loop_new(NULL, FALSE);
@@ -108,10 +139,15 @@ int main(int argc, char *argv[])
 
                for (i = 2; i < argc; i++)
                        g_resolv_add_nameserver(resolv, argv[i], 53, 0);
-       } else
-               g_resolv_add_nameserver(resolv, "127.0.0.1", 53, 0);
+       }
+
+       timer = g_timer_new();
 
-       g_resolv_lookup_hostname(resolv, argv[1], resolv_result, NULL);
+       if (g_resolv_lookup_hostname(resolv, argv[1],
+                                       resolv_result, NULL) == 0) {
+               printf("failed to start lookup\n");
+               return 1;
+       }
 
        memset(&sa, 0, sizeof(sa));
        sa.sa_handler = sig_term;
@@ -120,6 +156,8 @@ int main(int argc, char *argv[])
 
        g_main_loop_run(main_loop);
 
+       g_timer_destroy(timer);
+
        g_resolv_unref(resolv);
 
        g_main_loop_unref(main_loop);