X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=client%2Fadh-query.c;h=edacb17072f2910e8a2dcc42ab601a0070d644e0;hb=0ebff22d9b5832b18444f7c680ca71e24fc3734e;hp=856b6b2edd81b645b62eb1ae2d21840ee3dc34ef;hpb=5a0be2445e09e1d0fc6ae995b6c0296bc28e657d;p=adns.git diff --git a/client/adh-query.c b/client/adh-query.c index 856b6b2..edacb17 100644 --- a/client/adh-query.c +++ b/client/adh-query.c @@ -34,16 +34,21 @@ struct outstanding_list outstanding; static unsigned long idcounter; void ensure_adns_init(void) { + adns_initflags initflags; int r; if (ads) return; if (signal(SIGPIPE,SIG_IGN) == SIG_ERR) sysfail("ignore SIGPIPE",errno); - r= adns_init(&ads, - adns_if_noautosys|adns_if_nosigpipe | - (ov_env ? 0 : adns_if_noenv) | - ov_verbose, - 0); + + initflags= adns_if_noautosys|adns_if_nosigpipe|ov_verbose; + if (!ov_env) initflags |= adns_if_noenv; + + if (config_text) { + r= adns_init_strcfg(&ads, initflags, stderr, config_text); + } else { + r= adns_init(&ads, initflags, 0); + } if (r) sysfail("adns_init",r); if (ov_format == fmt_default) @@ -143,6 +148,7 @@ void query_do(const char *domain) { static void dequeue_query(struct query_node *qun) { LIST_UNLINK(outstanding,qun); free(qun->id); + free(qun->owner); free(qun); }