DA: Skip initializing failed_bssids list when eapol failure case
[platform/upstream/connman.git] / tools / web-test.c
old mode 100644 (file)
new mode 100755 (executable)
index 1e211d5..55c58af
@@ -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
@@ -24,7 +24,6 @@
 #endif
 
 #include <stdio.h>
-#include <stdlib.h>
 #include <string.h>
 #include <signal.h>
 
@@ -44,27 +43,50 @@ static void sig_term(int sig)
        g_main_loop_quit(main_loop);
 }
 
-static void web_result(uint16_t status, gpointer user_data)
+static bool web_result(GWebResult *result, gpointer user_data)
 {
+       const guint8 *chunk;
+       gsize length;
+       guint16 status;
        gdouble elapsed;
 
-       elapsed = g_timer_elapsed(timer, NULL);
+       g_web_result_get_chunk(result, &chunk, &length);
 
-       g_print("elapse: %f seconds\n", elapsed);
+       if (length > 0) {
+               printf("%s\n", (char *) chunk);
+               return true;
+       }
+
+       status = g_web_result_get_status(result);
 
        g_print("status: %03u\n", status);
 
+       elapsed = g_timer_elapsed(timer, NULL);
+
+       g_print("elapse: %f seconds\n", elapsed);
+
        g_main_loop_quit(main_loop);
+
+       return false;
 }
 
-static gboolean option_debug = FALSE;
+static bool option_debug = false;
+static gchar *option_proxy = NULL;
 static gchar *option_nameserver = NULL;
+static gchar *option_user_agent = NULL;
+static gchar *option_http_version = NULL;
 
 static GOptionEntry options[] = {
        { "debug", 'd', 0, G_OPTION_ARG_NONE, &option_debug,
                                        "Enable debug output" },
+       { "proxy", 'p', 0, G_OPTION_ARG_STRING, &option_proxy,
+                                       "Specify proxy", "ADDRESS" },
        { "nameserver", 'n', 0, G_OPTION_ARG_STRING, &option_nameserver,
                                        "Specify nameserver", "ADDRESS" },
+       { "user-agent", 'A', 0, G_OPTION_ARG_STRING, &option_user_agent,
+                                       "Specific user agent", "STRING" },
+       { "http-version", 'H', 0, G_OPTION_ARG_STRING, &option_http_version,
+                                       "Specific HTTP version", "STRING" },
        { NULL },
 };
 
@@ -79,44 +101,57 @@ 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
                        g_printerr("An unknown error occurred\n");
-               exit(1);
+               return 1;
        }
 
        g_option_context_free(context);
 
        if (argc < 2) {
-               printf("missing argument\n");
+               fprintf(stderr, "Missing argument\n");
                return 1;
        }
 
        web = g_web_new(index);
-       if (web == NULL) {
-               printf("failed to web service\n");
+       if (!web) {
+               fprintf(stderr, "Failed to create web service\n");
                return 1;
        }
 
-       if (option_debug == TRUE)
+       if (option_debug)
                g_web_set_debug(web, web_debug, "WEB");
 
        main_loop = g_main_loop_new(NULL, FALSE);
 
-       if (option_nameserver != NULL) {
+       if (option_proxy) {
+               g_web_set_proxy(web, option_proxy);
+               g_free(option_proxy);
+       }
+
+       if (option_nameserver) {
                g_web_add_nameserver(web, option_nameserver);
                g_free(option_nameserver);
-       } else
-               g_web_add_nameserver(web, "127.0.0.1");
+       }
+
+       if (option_user_agent) {
+               g_web_set_user_agent(web, "%s", option_user_agent);
+               g_free(option_user_agent);
+       }
+
+       if (option_http_version) {
+               g_web_set_http_version(web, option_http_version);
+               g_free(option_http_version);
+       }
 
        timer = g_timer_new();
 
-       if (g_web_request(web, G_WEB_METHOD_GET, argv[1],
-                                       web_result, NULL) == 0) {
-               printf("failed to start request\n");
+       if (g_web_request_get(web, argv[1], web_result, NULL,  NULL) == 0) {
+               fprintf(stderr, "Failed to start request\n");
                return 1;
        }