_glob_scripts: LIBQUVI_SCRIPTS_DIR: Ignore _glob_scripts_dir return value
[libquvi.git] / examples / resolve.c
blob755d94c4b54df9f8bd67cd79c4ebc1313c3b0b29
1 /* libquvi
2 * Copyright (C) 2012 Toni Gundogdu <legatvs@gmail.com>
4 * This program is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU General Public License
6 * as published by the Free Software Foundation; either version 2
7 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17 * 02110-1301, USA.
20 /* Check whether URL redirects to a new location. */
22 #include "config.h"
24 #include <locale.h>
25 #include <stdlib.h>
26 #include <glib.h>
27 #include <quvi.h>
29 #include "examples.h"
31 typedef quvi_callback_status qcs;
33 static void help()
35 g_print("Usage: resolve [-v] [URL]\n");
36 cleanup();
37 exit(0);
40 static const gchar *example_url = "http://is.gd/34YWaF";
42 gint main(gint argc, gchar **argv)
44 gchar *url = NULL;
45 gint i = 1;
47 g_assert(qr == NULL);
48 g_assert(q == NULL);
50 setlocale(LC_ALL, "");
52 q = quvi_new();
53 exit_if_error();
55 quvi_set(q, QUVI_OPTION_CALLBACK_STATUS, (qcs) status);
57 for (; i<argc; ++i)
59 if (g_strcmp0("-v", argv[i]) == 0)
60 enable_verbose();
61 else if (g_strcmp0("-a", argv[i]) == 0)
62 enable_autoproxy();
63 else if (g_strcmp0("-h", argv[i]) == 0)
64 help();
65 else
66 url = argv[i];
69 if (url == NULL)
71 g_printerr("[%s] no input given: using example URL instead\n",
72 __func__);
73 url = (gchar*) example_url;
76 g_printerr("[%s] url=%s\n", __func__, url);
78 qr = quvi_resolve_new(q, url);
79 exit_if_error();
81 if (quvi_resolve_forwarded(qr) == QUVI_TRUE)
83 g_print("[%s] resolved=%s\n",
84 __func__, quvi_resolve_destination_url(qr));
86 else
87 g_print("[%s] no redirection\n", __func__);
89 cleanup();
91 g_assert(qr == NULL);
92 g_assert(q == NULL);
94 return (0);
97 /* vim: set ts=2 sw=2 tw=72 expandtab: */