From 8312f7f60f9dfe88118163d38b8282abf04aac2f Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 2 Jun 2014 02:13:57 -0400 Subject: implement new dns backend, res_send and other legacy resolver functions this is the second phase of the "resolver overhaul" project. the key additions in this commit are the __res_msend and __res_mkquery functions, which have been factored so as to provide a backend for both the legacy res_* functions and the standard getaddrinfo and getnameinfo functions. the latter however are still using the old backend code; there is code duplication which still needs to be removed, and this will be the next phase of the resolver overhaul. __res_msend is derived from the old __dns_doqueries function, but generalized to send arbitrary caller-provided packets in parallel rather than producing the parallel queries itself. this allows it to be used (completely trivially) as a backend for res_send. the factored-out query generation code, with slightly more generality, is now part of __res_mkquery. --- src/network/res_send.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/network/res_send.c (limited to 'src/network/res_send.c') diff --git a/src/network/res_send.c b/src/network/res_send.c new file mode 100644 index 00000000..19cfe0f6 --- /dev/null +++ b/src/network/res_send.c @@ -0,0 +1,12 @@ +#include +#include "libc.h" + +int __res_msend(int, const unsigned char *const *, const int *, unsigned char *const *, int *, int); + +int __res_send(const unsigned char *msg, int msglen, unsigned char *answer, int anslen) +{ + int r = __res_msend(1, &msg, &msglen, &answer, &anslen, anslen); + return r<0 ? r : anslen; +} + +weak_alias(__res_send, res_send); -- cgit v1.2.1