bb149f75 |
1 | |
2 | #include <sys/types.h> |
3 | #include <sys/time.h> |
4 | |
5 | #include <string.h> |
6 | #include <stdlib.h> |
7 | #include <stdio.h> |
8 | #include <errno.h> |
9 | |
10 | #include "adns.h" |
11 | |
12 | static const char *progname; |
13 | |
14 | #define msg(fmt, args...) fprintf(stderr, "%s: " fmt "\n", progname, ##args) |
15 | |
16 | static void aargh(const char *cause) { |
17 | const char *why = strerror(errno); |
18 | if (!why) why = "Unknown error"; |
19 | msg("%s: %s (%d)", cause, why, errno); |
20 | exit(1); |
21 | } |
22 | |
23 | int main(int argc, char *argv[]) { |
24 | adns_state adns; |
25 | adns_query query; |
26 | adns_answer *answer; |
27 | |
28 | progname= strrchr(*argv, '/'); |
29 | if (progname) |
30 | progname++; |
31 | else |
32 | progname= *argv; |
33 | |
34 | if (argc != 2) { |
35 | fprintf(stderr, "usage: %s <domain>\n", progname); |
36 | exit(1); |
37 | } |
38 | |
39 | errno= adns_init(&adns, adns_if_debug, 0); |
40 | if (errno) aargh("adns_init"); |
41 | |
42 | errno= adns_submit(adns, argv[1], adns_r_ptr, |
43 | adns_qf_quoteok_cname|adns_qf_cname_loose, |
44 | NULL, &query); |
45 | if (errno) aargh("adns_submit"); |
46 | |
47 | errno= adns_wait(adns, &query, &answer, NULL); |
48 | if (errno) aargh("adns_init"); |
49 | |
50 | printf("%s\n", answer->status == adns_s_ok ? *answer->rrs.str : "dunno"); |
51 | |
52 | adns_finish(adns); |
53 | |
54 | return 0; |
55 | } |