Simple test of the dns code
[platform/upstream/libsoup.git] / tests / dns.c
1 #include <config.h>
2
3 #include <stdio.h>
4 #include <stdlib.h>
5
6 #include "libsoup/soup-address.h"
7
8 GMainLoop *loop;
9
10 static void
11 resolve_callback (SoupAddress *addr, guint status, gpointer data)
12 {
13         if (status != SOUP_STATUS_OK) {
14                 fprintf (stderr, "%s\n", soup_status_get_phrase (status));
15                 exit (1);
16         }
17
18         printf ("Name:    %s\n", soup_address_get_name (addr));
19         printf ("Address: %s\n", soup_address_get_physical (addr));
20         g_main_loop_quit (loop);
21 }
22
23 static void
24 usage (void)
25 {
26         fprintf (stderr, "Usage: dns [hostname | -r IP]\n");
27         exit (1);
28 }
29
30 int
31 main (int argc, char **argv)
32 {
33         SoupAddress *addr;
34
35         if (argc != 2)
36                 usage ();
37
38         g_type_init ();
39         g_thread_init (NULL);
40
41         addr = soup_address_new (argv[1], 0);
42         if (!addr) {
43                 fprintf (stderr, "Could not parse address %s\n", argv[1]);
44                 exit (1);
45         }
46
47         soup_address_resolve_async (addr, resolve_callback, NULL);
48
49         loop = g_main_loop_new (NULL, TRUE);
50         g_main_run (loop);
51         g_main_loop_unref (loop);
52
53         return 0;
54 }