summaryrefslogtreecommitdiff
path: root/ares_process.c
diff options
context:
space:
mode:
authorGisle Vanem <gvanem@broadpark.no>2004-08-20 13:45:26 +0000
committerGisle Vanem <gvanem@broadpark.no>2004-08-20 13:45:26 +0000
commit6deb40acac246489db7c6021f7432d83a867670d (patch)
tree48fe529bed68f3b197e8e39fd60d70453d5551ce /ares_process.c
parent5133b2b6b9755497bf2cc6c58f40fbebc24b47f6 (diff)
downloadc-ares-6deb40acac246489db7c6021f7432d83a867670d.tar.gz
c-ares-6deb40acac246489db7c6021f7432d83a867670d.tar.bz2
c-ares-6deb40acac246489db7c6021f7432d83a867670d.zip
Changes for Watt-32 on Windows. I've assumed Configure
sets the required HAVE_xx defines for non-DOS/Win targets.
Diffstat (limited to 'ares_process.c')
-rw-r--r--ares_process.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/ares_process.c b/ares_process.c
index 9e5156e..4a88b76 100644
--- a/ares_process.c
+++ b/ares_process.c
@@ -16,27 +16,33 @@
#include "setup.h"
#include <sys/types.h>
-#ifdef WIN32
+#if defined(WIN32) && !defined(WATT32)
#include "nameser.h"
+
#else
#include <sys/socket.h>
+#ifdef HAVE_SYS_UIO_H
#include <sys/uio.h>
+#endif
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/nameser.h>
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
+#endif
#include <string.h>
#include <stdlib.h>
#include <fcntl.h>
#include <time.h>
#include <errno.h>
+
#include "ares.h"
#include "ares_dns.h"
#include "ares_private.h"
-#ifdef WIN32
+#if defined(WIN32) || defined(WATT32)
#define GET_ERRNO() WSAGetLastError()
#else
#define GET_ERRNO() errno
@@ -234,7 +240,8 @@ static void read_tcp_data(ares_channel channel, fd_set *read_fds, time_t now)
*/
process_answer(channel, server->tcp_buffer, server->tcp_length,
i, 1, now);
- free(server->tcp_buffer);
+ if (server->tcp_buffer)
+ free(server->tcp_buffer);
server->tcp_buffer = NULL;
server->tcp_lenbuf_pos = 0;
}