Use `r=...; if (r)...' rather than `if (syscall) ...'. And add a
comment explaining why we're not using adns__must_gettimeofday.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
struct timeval now;
adns_status err;
adns_queryflags qf;
struct timeval now;
adns_status err;
adns_queryflags qf;
propagate_ttl(parent, child);
propagate_ttl(parent, child);
* settled on.
*/
adns__cancel_children(parent);
* settled on.
*/
adns__cancel_children(parent);
- if (gettimeofday(&now, 0)) goto x_gtod;
+ r= gettimeofday(&now, 0); if (r) goto x_gtod;
qf= adns__qf_addr_cname;
if (!(parent->flags & adns_qf_cname_loose)) qf |= adns_qf_cname_forbid;
addr_subqueries(parent, now, qf, child->vb.buf, child->vb.used);
qf= adns__qf_addr_cname;
if (!(parent->flags & adns_qf_cname_loose)) qf |= adns_qf_cname_forbid;
addr_subqueries(parent, now, qf, child->vb.buf, child->vb.used);
adns__cancel_children(parent);
adns__free_interim(parent, pans->rrs.bytes);
pans->rrs.bytes= 0; pans->nrrs= 0;
adns__cancel_children(parent);
adns__free_interim(parent, pans->rrs.bytes);
pans->rrs.bytes= 0; pans->nrrs= 0;
- if (gettimeofday(&now, 0)) goto x_gtod;
+ r= gettimeofday(&now, 0); if (r) goto x_gtod;
adns__search_next(ads, parent, now);
return;
}
adns__search_next(ads, parent, now);
return;
}
+ /* We have our own error handling, because adns__must_gettimeofday
+ * handles errors by calling adns_globalsystemfailure, which would
+ * reenter the query processing logic. */
adns__diag(ads, -1, parent, "gettimeofday failed: %s", strerror(errno));
err= adns_s_systemfail;
goto x_err;
adns__diag(ads, -1, parent, "gettimeofday failed: %s", strerror(errno));
err= adns_s_systemfail;
goto x_err;