WvStreams
wvresolverex.cc
00001  /*
00002  * A WvResolver example.
00003  *
00004  * Tries to look up two host names given on the command line.
00005  * The expected output:
00006  * resolver<Err>: 1 not in DNS.
00007  * resolver<Err>: 2 not in DNS.
00008  * resolver<Err>: 1 not in DNS.
00009  * resolver<Err>: 2 not in DNS.
00010  * resolver<Err>: 1 not in DNS.
00011  * resolver<Err>: 2 not in DNS.
00012  *
00013  */
00014 
00015 #include "wvresolver.h"
00016 #include "wvlog.h"
00017 
00018 void test(WvResolver &dns, int argc, char **argv)
00019 {
00020     WvLog log("resolver", WvLog::Info);
00021     const WvIPAddr *addr;
00022     int res1, res2;
00023 
00024     res1 = res2 = -1;
00025 
00026     while (res1 < 0 || res2 < 0)
00027     {
00028         if (res1 < 0)
00029         {
00030             res1 = dns.findaddr(100, argc > 1 ? argv[1] : "abyss.cnss.ca",
00031                                 &addr);
00032             if (res1 > 0)
00033                 log.print("Found address for 1: %s\n", (WvString)(*addr));
00034             else if (res1 < 0)
00035                 log.print("[1] ");
00036             else
00037                 log(WvLog::Error, "1 not in DNS.\n");
00038         }
00039 
00040         if (res2 < 0)
00041         {
00042             res2 = dns.findaddr(100, argc > 2 ? argv[2] : "frank.foxnet.net",
00043                                &addr);
00044             if (res2 > 0)
00045                 log.print("Found address for 2: %s\n", (WvString)(*addr));
00046             else if (res2 < 0)
00047                 log.print("[2] ");
00048             else
00049                 log(WvLog::Error, "2 not in DNS.\n");
00050         }
00051     }
00052 
00053 }
00054 
00055 int main(int argc, char **argv)
00056 {
00057     {
00058         WvResolver dns;
00059         test(dns, argc, argv);
00060         test(dns, argc, argv);
00061     }
00062 
00063     {
00064         WvResolver dns;
00065         test(dns, argc, argv);
00066     }
00067 
00068     return 0;
00069 }