chiark
/
gitweb
/
~mdw
/
mLib
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
url: Allow `;' to separate key/value pairs in URL-encoded strings.
[mLib]
/
bres-adns.c
diff --git
a/bres-adns.c
b/bres-adns.c
index 54e6708cf3b515fa4465d547034fae30a2412611..68b919c7266823f50043459984f5be3fdf8acef1 100644
(file)
--- a/
bres-adns.c
+++ b/
bres-adns.c
@@
-1,6
+1,6
@@
/* -*-c-*-
*
/* -*-c-*-
*
- * $Id
: bres-adns.c,v 1.1 2003/12/13 20:37:59 mdw Exp
$
+ * $Id$
*
* Background reverse name resolution (ADNS version)
*
*
* Background reverse name resolution (ADNS version)
*
@@
-39,14
+39,6
@@
* must be licensed under the full GPL.
*/
* must be licensed under the full GPL.
*/
-/*----- Revision history --------------------------------------------------*
- *
- * $Log: bres-adns.c,v $
- * Revision 1.1 2003/12/13 20:37:59 mdw
- * Add adns support in background resolver.
- *
- */
-
#ifndef HAVE_ADNS
# error "You need the ADNS library to compile this file."
#endif
#ifndef HAVE_ADNS
# error "You need the ADNS library to compile this file."
#endif
@@
-163,7
+155,7
@@
void bres_byname(bres_client *rc, const char *name,
if (!ads) goto fail;
if ((e = adns_submit(ads, name, adns_r_addr,
if (!ads) goto fail;
if ((e = adns_submit(ads, name, adns_r_addr,
- adns_qf_search, rc, &rc->aq)) != 0)
+ adns_qf_search
| adns_qf_owner
, rc, &rc->aq)) != 0)
goto fail;
rc->a = 0;
rc->q = adns_r_addr;
goto fail;
rc->a = 0;
rc->q = adns_r_addr;
@@
-262,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;
@@
-276,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, &rc->u.name, 1
);
-
free(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:
@@
-297,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;
@@
-308,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);
}
}
@@
-328,7
+321,7
@@
void bres_init(sel_state *s)
{
int e;
{
int e;
- if ((e = adns_init(&ads,
0
, 0)) != 0) {
+ if ((e = adns_init(&ads,
adns_if_noautosys
, 0)) != 0) {
moan("adns_init failed: resolver won't work");
return;
}
moan("adns_init failed: resolver won't work");
return;
}