summaryrefslogtreecommitdiff
path: root/sample/dns-example.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2012-05-02 17:12:23 -0400
committerNick Mathewson <nickm@torproject.org>2012-05-02 17:12:23 -0400
commit4b70286ef1413bd870a93edc7d93e6d24b809e93 (patch)
tree8cbac697ca97a942d748d4735f5a77b03de0b541 /sample/dns-example.c
parent9fbfe9b94838cea245472b5619dc4a111fb0dd30 (diff)
parentcecb111bcd9af40a14a456fb07e3be4059fd46f0 (diff)
downloadlibevent-4b70286ef1413bd870a93edc7d93e6d24b809e93.tar.gz
Merge remote-tracking branch 'origin/patches-2.0'
Conflicts: ChangeLog README evdns.c sample/dns-example.c
Diffstat (limited to 'sample/dns-example.c')
-rw-r--r--sample/dns-example.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/sample/dns-example.c b/sample/dns-example.c
index cb8d32ff..84988554 100644
--- a/sample/dns-example.c
+++ b/sample/dns-example.c
@@ -145,8 +145,9 @@ main(int c, char **v) {
int reverse = 0, servertest = 0, use_getaddrinfo = 0;
struct event_base *event_base = NULL;
struct evdns_base *evdns_base = NULL;
+ const char *resolv_conf = NULL;
if (c<2) {
- fprintf(stderr, "syntax: %s [-x] [-v] hostname\n", v[0]);
+ fprintf(stderr, "syntax: %s [-x] [-v] [-c resolv.conf] hostname\n", v[0]);
fprintf(stderr, "syntax: %s [-servertest]\n", v[0]);
return 1;
}
@@ -160,7 +161,12 @@ main(int c, char **v) {
use_getaddrinfo = 1;
else if (!strcmp(v[idx], "-servertest"))
servertest = 1;
- else
+ else if (!strcmp(v[idx], "-c")) {
+ if (idx + 1 < c)
+ resolv_conf = v[++idx];
+ else
+ fprintf(stderr, "-c needs an argument\n");
+ } else
fprintf(stderr, "Unknown option %s\n", v[idx]);
++idx;
}
@@ -197,11 +203,14 @@ main(int c, char **v) {
if (idx < c) {
int res;
#ifdef _WIN32
- res = evdns_base_config_windows_nameservers(evdns_base);
-#else
- res = evdns_base_resolv_conf_parse(evdns_base, DNS_OPTION_NAMESERVERS,
- "/etc/resolv.conf");
+ if (resolv_conf == NULL)
+ res = evdns_base_config_windows_nameservers(evdns_base);
+ else
#endif
+ res = evdns_base_resolv_conf_parse(evdns_base,
+ DNS_OPTION_NAMESERVERS,
+ resolv_conf ? resolv_conf : "/etc/resolv.conf");
+
if (res < 0) {
fprintf(stderr, "Couldn't configure nameservers");
return 1;