chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
addrfam: New arrangements for protocol address types
[adns]
/
src
/
query.c
diff --git
a/src/query.c
b/src/query.c
index c18ba8e991c3481f33057bf44145a6025a2d3605..a5882f3ec5f19c6b6994e7095750bd4afbe39a15 100644
(file)
--- a/
src/query.c
+++ b/
src/query.c
@@
-104,8
+104,8
@@
static void query_submit(adns_state ads, adns_query qu,
qu->id= id;
qu->query_dglen= qu->vb.used;
memcpy(qu->query_dgram,qu->vb.buf,qu->vb.used);
qu->id= id;
qu->query_dglen= qu->vb.used;
memcpy(qu->query_dgram,qu->vb.buf,qu->vb.used);
-
-
adns__
query_send(qu,now);
+
+
typei->
query_send(qu,now);
}
adns_status adns__ckl_hostname(adns_state ads, adns_queryflags flags,
}
adns_status adns__ckl_hostname(adns_state ads, adns_queryflags flags,
@@
-415,6
+415,17
@@
static allocnode *alloc_info(adns_query qu, void *p, size_t *sz_r) {
return an;
}
return an;
}
+void adns__free_interim(adns_query qu, void *p) {
+ size_t sz;
+ allocnode *an= alloc_info(qu, p, &sz);
+
+ if (!an) return;
+ assert(!qu->final_allocspace);
+ LIST_UNLINK(qu->allocations, an);
+ free(an);
+ qu->interim_allocd -= sz;
+}
+
void *adns__alloc_mine(adns_query qu, size_t sz) {
return alloc_common(qu,MEM_ROUND(sz));
}
void *adns__alloc_mine(adns_query qu, size_t sz) {
return alloc_common(qu,MEM_ROUND(sz));
}
@@
-453,7
+464,7
@@
void *adns__alloc_final(adns_query qu, size_t sz) {
return rp;
}
return rp;
}
-
static void
cancel_children(adns_query qu) {
+
void adns__
cancel_children(adns_query qu) {
adns_query cqu, ncqu;
for (cqu= qu->children.head; cqu; cqu= ncqu) {
adns_query cqu, ncqu;
for (cqu= qu->children.head; cqu; cqu= ncqu) {
@@
-464,7
+475,7
@@
static void cancel_children(adns_query qu) {
void adns__reset_preserved(adns_query qu) {
assert(!qu->final_allocspace);
void adns__reset_preserved(adns_query qu) {
assert(!qu->final_allocspace);
- cancel_children(qu);
+
adns__
cancel_children(qu);
qu->answer->nrrs= 0;
qu->answer->rrs.untyped= 0;
qu->interim_allocd= qu->preserved_allocd;
qu->answer->nrrs= 0;
qu->answer->rrs.untyped= 0;
qu->interim_allocd= qu->preserved_allocd;
@@
-473,7
+484,7
@@
void adns__reset_preserved(adns_query qu) {
static void free_query_allocs(adns_query qu) {
allocnode *an, *ann;
static void free_query_allocs(adns_query qu) {
allocnode *an, *ann;
- cancel_children(qu);
+
adns__
cancel_children(qu);
for (an= qu->allocations.head; an; an= ann) { ann= an->next; free(an); }
LIST_INIT(qu->allocations);
adns__vbuf_free(&qu->vb);
for (an= qu->allocations.head; an; an= ann) { ann= an->next; free(an); }
LIST_INIT(qu->allocations);
adns__vbuf_free(&qu->vb);
@@
-561,7
+572,7
@@
void adns__query_done(adns_query qu) {
adns_answer *ans;
adns_query parent;
adns_answer *ans;
adns_query parent;
- cancel_children(qu);
+
adns__
cancel_children(qu);
qu->id= -1;
ans= qu->answer;
qu->id= -1;
ans= qu->answer;