chiark
/
gitweb
/
~mdw
/
adns
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Reentrancy: Introduce adns__returning
[adns]
/
src
/
query.c
diff --git
a/src/query.c
b/src/query.c
index 6a1ec75ffd8df3b0d838793d8c6b0e1a76736e2b..3e93fc2ef81a54b601d7bb51ca1a3b6799e8e181 100644
(file)
--- a/
src/query.c
+++ b/
src/query.c
@@
-312,18
+312,18
@@
int adns_submit(adns_state ads,
query_simple(ads,qu, owner,ol, typei,flags, now);
}
adns__autosys(ads,now);
query_simple(ads,qu, owner,ol, typei,flags, now);
}
adns__autosys(ads,now);
- adns__
consistency(ads,qu,cc_entex
);
+ adns__
returning(ads,qu
);
return 0;
x_adnsfail:
adns__query_fail(qu,stat);
return 0;
x_adnsfail:
adns__query_fail(qu,stat);
- adns__
consistency(ads,qu,cc_entex
);
+ adns__
returning(ads,qu
);
return 0;
x_errno:
r= errno;
assert(r);
return 0;
x_errno:
r= errno;
assert(r);
- adns__
consistency(ads,0,cc_entex
);
+ adns__
returning(ads,0
);
return r;
}
return r;
}
@@
-496,6
+496,10
@@
static void free_query_allocs(adns_query qu) {
qu->query_dgram= 0;
}
qu->query_dgram= 0;
}
+void adns__returning(adns_state ads, adns_query qu_for_caller) {
+ adns__consistency(ads,qu_for_caller,cc_entex);
+}
+
void adns_cancel(adns_query qu) {
adns_state ads;
void adns_cancel(adns_query qu) {
adns_state ads;
@@
-521,7
+525,7
@@
void adns_cancel(adns_query qu) {
free_query_allocs(qu);
free(qu->answer);
free(qu);
free_query_allocs(qu);
free(qu->answer);
free(qu);
- adns__
consistency(ads,0,cc_entex
);
+ adns__
returning(ads,0
);
}
void adns__update_expires(adns_query qu, unsigned long ttl,
}
void adns__update_expires(adns_query qu, unsigned long ttl,