diff options
author | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
---|---|---|
committer | Vladimir Azarov <avm@intermediate-node.net> | 2024-10-01 15:47:05 +0200 |
commit | 4abab5ad6c8465a7528ccdd5f49367da05f78bbd (patch) | |
tree | ebf009bf1376a5a223a915bc27cbbd791a1316bc /src/network/res_send.c |
Initial version
Diffstat (limited to 'src/network/res_send.c')
-rw-r--r-- | src/network/res_send.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/network/res_send.c b/src/network/res_send.c new file mode 100644 index 0000000..9593164 --- /dev/null +++ b/src/network/res_send.c @@ -0,0 +1,17 @@ +#include <resolv.h> +#include <string.h> + +int __res_send(const unsigned char *msg, int msglen, unsigned char *answer, int anslen) +{ + int r; + if (anslen < 512) { + unsigned char buf[512]; + r = __res_send(msg, msglen, buf, sizeof buf); + if (r >= 0) memcpy(answer, buf, r < anslen ? r : anslen); + return r; + } + r = __res_msend(1, &msg, &msglen, &answer, &anslen, anslen); + return r<0 || !anslen ? -1 : anslen; +} + +weak_alias(__res_send, res_send); |