question about code in resolver.c

Mark Andrews Mark_Andrews at isc.org
Fri Oct 13 01:22:16 UTC 2006


> Hi!
> 
> It would be great if someone can describe this piece of code to me (or 
> redirect me to a more appropriate mailing list).
> 
> in lib/dns/resovler.c
> 
> fctx_done(fetchctx_t *fctx, isc_result_t result) {
>    dns_resolver_t *res;
>    isc_boolean_t no_response;
> 
>    FCTXTRACE("done");
> 
>    res = fctx->res;
> 
>    if (result == ISC_R_SUCCESS) {
>      no_response = ISC_TRUE;
>    else
>      no_response = ISC_FALSE;
>    fctx_stopeverything(fctx, no_response);
> 
>    .....
> 
> 
> 
> Why is no_response set to true if the result is ISC_R_SUCCESS? Shouldn't 
> it be the other way round? I would suspect no_response to represent if 
> there was an response received or not. If this is correct I would set it 
> to true if result is ISC_R_SUCCUSS?

	If the result is ISC_R_SUCCESS a response has already been
	sent to the client.  If it is not ISC_R_SUCCESS the resolution
	process is bailing out early and a error needs to be returned
	to the client.
 
> thanks
> klaus
> 
> 
--
ISC Training!  October 16-20, 2006, in the San Francisco Bay Area,
covering topics from DNS to DHCP.  Email training at isc.org.
-- 
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark_Andrews at isc.org



More information about the bind-users mailing list