From: ian Date: Thu, 16 Dec 2004 01:07:02 +0000 (+0000) Subject: it made an asynch query X-Git-Tag: debian/1.1.1~113 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=a8c18d0ece235ab39c95ed73d02d3bb206209767;hp=07bc9fb02444968d4e8b1f0c6e00a15a8ada8d9e;p=chiark-tcl.git it made an asynch query --- 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);