chiark
/
gitweb
/
~mdw
/
mLib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
daemonize, versioncmp: Generally useful functions from tripe.
[mLib]
/
bres-adns.c
diff --git
a/bres-adns.c
b/bres-adns.c
index e0a034adbb488d69153d20a0f2b0d9206582cd91..68b919c7266823f50043459984f5be3fdf8acef1 100644
(file)
--- a/
bres-adns.c
+++ b/
bres-adns.c
@@
-254,7
+254,7
@@
static void afterhook(sel_state *s, sel_args *sa, void *p)
void *c;
bres_client *rc;
adns_query q;
void *c;
bres_client *rc;
adns_query q;
- adns_answer *a;
+ adns_answer *a
, *aa
;
int e;
int i;
int e;
int i;
@@
-268,8
+268,8
@@
static void afterhook(sel_state *s, sel_args *sa, void *p)
else switch (rc->q) {
case adns_r_addr:
assert(a->type == adns_r_addr);
else switch (rc->q) {
case adns_r_addr:
assert(a->type == adns_r_addr);
- report(rc, a, a->rrs.addr, a->nrrs, &a->owner, 1);
xfree(rc->u.name);
xfree(rc->u.name);
+ report(rc, a, a->rrs.addr, a->nrrs, &a->owner, 1);
free(a);
break;
case adns_r_ptr:
free(a);
break;
case adns_r_ptr:
@@
-289,8
+289,9
@@
static void afterhook(sel_state *s, sel_args *sa, void *p)
}
goto fail;
match:
}
goto fail;
match:
- report(rc, a, &a->rrs.addr[i], 1, rc->a->rrs.str, rc->a->nrrs);
- free(rc->a);
+ aa = rc->a;
+ report(rc, a, &a->rrs.addr[i], 1, aa->rrs.str, aa->nrrs);
+ free(aa);
free(a);
}
break;
free(a);
}
break;
@@
-300,9
+301,9
@@
static void afterhook(sel_state *s, sel_args *sa, void *p)
continue;
fail:
continue;
fail:
- rc->func(0, rc->p);
if (rc->q == adns_r_addr) xfree(rc->u.name);
if (rc->a) free(rc->a);
if (rc->q == adns_r_addr) xfree(rc->u.name);
if (rc->a) free(rc->a);
+ rc->func(0, rc->p);
free(a);
}
}
free(a);
}
}