From a8c18d0ece235ab39c95ed73d02d3bb206209767 Mon Sep 17 00:00:00 2001 From: ian Date: Thu, 16 Dec 2004 01:07:02 +0000 Subject: [PATCH 1/1] it made an asynch query --- adns/adns.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/adns/adns.c b/adns/adns.c index 1ecb672..3812ffc 100644 --- a/adns/adns.c +++ b/adns/adns.c @@ -559,6 +559,7 @@ static void asynch_check(Resolver *res) { Tcl_Obj *results[RESULTLIST_LLEN]; for (;;) { + aqu= 0; ec= adns_check(res->ads, &aqu, &answer, &query_v); if (ec==ESRCH || ec==EAGAIN) break; assert(!ec); @@ -567,7 +568,7 @@ static void asynch_check(Resolver *res) { query->aqu= 0; tabledataid_disposing(interp, query, &adnstcl_queries); - si= (!answer->status ? si= &query->on_yes + si= (!answer->status ? &query->on_yes : answer->status > adns_s_max_tempfail ? &query->on_no : &query->on_fail); @@ -609,8 +610,8 @@ int do_adns_asynch(ClientData cd, Tcl_Interp *ip, query->xargs= xargs; Tcl_IncrRefCount(xargs); *result= query; - - return TCL_OK; + query= 0; /* do not dispose */ + rc= TCL_OK; x_rc: if (query) asynch_query_dispose(ip, query); -- 2.30.2