From e0eb284ef49d9ebe231dbae78ff897047558503b Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Fri, 25 Mar 2011 11:46:58 -0500 Subject: [PATCH] ldns initial round for windows compatibility --- libs/ldns/compat/b32_ntop.c | 2 ++ libs/ldns/compat/b32_pton.c | 2 ++ libs/ldns/compat/b64_ntop.c | 2 ++ libs/ldns/compat/b64_pton.c | 2 ++ libs/ldns/compat/fake-rfc2553.c | 2 ++ libs/ldns/compat/fake-rfc2553.h | 4 +++ libs/ldns/compat/gettimeofday.c | 50 +++++++++++++++++++++++++++++++++ libs/ldns/compat/gettimeofday.h | 11 ++++++++ libs/ldns/compat/inet_aton.c | 2 ++ libs/ldns/compat/inet_ntop.c | 2 ++ libs/ldns/compat/malloc.c | 2 ++ libs/ldns/compat/memmove.c | 2 ++ libs/ldns/compat/realloc.c | 2 ++ libs/ldns/dnssec.c | 4 +++ libs/ldns/dnssec_sign.c | 4 +++ libs/ldns/dnssec_verify.c | 4 +++ libs/ldns/host2str.c | 2 ++ libs/ldns/ldns/packet.h | 4 +++ libs/ldns/ldns/resolver.h | 4 +++ libs/ldns/net.c | 7 ++++- libs/ldns/packet.c | 4 +++ libs/ldns/parse.c | 4 +++ libs/ldns/resolver.c | 4 +++ libs/ldns/rr.c | 4 +++ libs/ldns/rr_functions.c | 4 +++ libs/ldns/sha1.c | 4 +++ libs/ldns/tsig.c | 4 +++ libs/ldns/update.c | 4 +++ libs/ldns/util.c | 8 ++++++ libs/ldns/wire2host.c | 4 +++ libs/ldns/zone.c | 4 +++ 31 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 libs/ldns/compat/gettimeofday.c create mode 100644 libs/ldns/compat/gettimeofday.h diff --git a/libs/ldns/compat/b32_ntop.c b/libs/ldns/compat/b32_ntop.c index 038ebdc958..f6fa95c58c 100644 --- a/libs/ldns/compat/b32_ntop.c +++ b/libs/ldns/compat/b32_ntop.c @@ -42,7 +42,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #ifdef HAVE_SYS_SOCKET_H #include #endif diff --git a/libs/ldns/compat/b32_pton.c b/libs/ldns/compat/b32_pton.c index 9c261e615b..766f5fa4b4 100644 --- a/libs/ldns/compat/b32_pton.c +++ b/libs/ldns/compat/b32_pton.c @@ -42,7 +42,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #ifdef HAVE_SYS_SOCKET_H #include #endif diff --git a/libs/ldns/compat/b64_ntop.c b/libs/ldns/compat/b64_ntop.c index d0b52b514b..c9f605e901 100644 --- a/libs/ldns/compat/b64_ntop.c +++ b/libs/ldns/compat/b64_ntop.c @@ -42,7 +42,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #ifdef HAVE_SYS_SOCKET_H #include #endif diff --git a/libs/ldns/compat/b64_pton.c b/libs/ldns/compat/b64_pton.c index aa637d2275..98fdddb6d3 100644 --- a/libs/ldns/compat/b64_pton.c +++ b/libs/ldns/compat/b64_pton.c @@ -42,7 +42,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #ifdef HAVE_SYS_SOCKET_H #include #endif diff --git a/libs/ldns/compat/fake-rfc2553.c b/libs/ldns/compat/fake-rfc2553.c index 431e04a215..28e8b4211f 100644 --- a/libs/ldns/compat/fake-rfc2553.c +++ b/libs/ldns/compat/fake-rfc2553.c @@ -38,7 +38,9 @@ #include #include +#ifndef _MSC_VER #include +#endif #include #include #include diff --git a/libs/ldns/compat/fake-rfc2553.h b/libs/ldns/compat/fake-rfc2553.h index 4c277ee902..2eab0c8bc4 100644 --- a/libs/ldns/compat/fake-rfc2553.h +++ b/libs/ldns/compat/fake-rfc2553.h @@ -40,8 +40,12 @@ #define _FAKE_RFC2553_H #include +#ifdef _MSC_VER +#include +#else #include #include +#endif #include #ifdef __cplusplus diff --git a/libs/ldns/compat/gettimeofday.c b/libs/ldns/compat/gettimeofday.c new file mode 100644 index 0000000000..3d1fb12810 --- /dev/null +++ b/libs/ldns/compat/gettimeofday.c @@ -0,0 +1,50 @@ +#include + +#ifndef HAVE_GETTIMEOFDAY + +#include < time.h > +#include < windows.h> +#include + +#if defined(_MSC_VER) || defined(_MSC_EXTENSIONS) +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000Ui64 +#else +#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL +#endif + +int gettimeofday(struct timeval *tv, struct timezone *tz) +{ + FILETIME ft; + unsigned __int64 tmpres = 0; + static int tzflag; + + if (NULL != tv) + { + GetSystemTimeAsFileTime(&ft); + + tmpres |= ft.dwHighDateTime; + tmpres <<= 32; + tmpres |= ft.dwLowDateTime; + + /*converting file time to unix epoch*/ + tmpres /= 10; /*convert into microseconds*/ + tmpres -= DELTA_EPOCH_IN_MICROSECS; + tv->tv_sec = (long)(tmpres / 1000000UL); + tv->tv_usec = (long)(tmpres % 1000000UL); + } + + if (NULL != tz) + { + if (!tzflag) + { + _tzset(); + tzflag++; + } + tz->tz_minuteswest = _timezone / 60; + tz->tz_dsttime = _daylight; + } + + return 0; +} + +#endif \ No newline at end of file diff --git a/libs/ldns/compat/gettimeofday.h b/libs/ldns/compat/gettimeofday.h new file mode 100644 index 0000000000..5a929fe082 --- /dev/null +++ b/libs/ldns/compat/gettimeofday.h @@ -0,0 +1,11 @@ +#ifndef HAVE_GETTIMEOFDAY + +struct timezone +{ + int tz_minuteswest; /* minutes W of Greenwich */ + int tz_dsttime; /* type of dst correction */ +}; + +int gettimeofday(struct timeval *tv, struct timezone *tz); + +#endif \ No newline at end of file diff --git a/libs/ldns/compat/inet_aton.c b/libs/ldns/compat/inet_aton.c index e8c3a57b9a..86cd1125a5 100644 --- a/libs/ldns/compat/inet_aton.c +++ b/libs/ldns/compat/inet_aton.c @@ -55,7 +55,9 @@ #if !defined(HAVE_INET_ATON) #include +#ifndef _MSC_VER #include +#endif #ifdef HAVE_NETINET_IN_H #include #endif diff --git a/libs/ldns/compat/inet_ntop.c b/libs/ldns/compat/inet_ntop.c index 57509c7c98..bb7b067ec3 100644 --- a/libs/ldns/compat/inet_ntop.c +++ b/libs/ldns/compat/inet_ntop.c @@ -21,7 +21,9 @@ #ifndef HAVE_INET_NTOP +#ifndef _MSC_VER #include +#endif #include #ifdef HAVE_SYS_SOCKET_H #include diff --git a/libs/ldns/compat/malloc.c b/libs/ldns/compat/malloc.c index bbc632e4f6..d51d4b0a92 100644 --- a/libs/ldns/compat/malloc.c +++ b/libs/ldns/compat/malloc.c @@ -8,7 +8,9 @@ #include +#ifndef _MSC_VER void *malloc (); +#endif /* Allocate an N-byte block of memory from the heap. If N is zero, allocate a 1-byte block. */ diff --git a/libs/ldns/compat/memmove.c b/libs/ldns/compat/memmove.c index e458092c33..8f3f54f5cc 100644 --- a/libs/ldns/compat/memmove.c +++ b/libs/ldns/compat/memmove.c @@ -9,6 +9,7 @@ #include #include +#ifndef _MSC_VER void *memmove(void *dest, const void *src, size_t n); void *memmove(void *dest, const void *src, size_t n) @@ -41,3 +42,4 @@ void *memmove(void *dest, const void *src, size_t n) memcpy(dest, src, n); return dest; } +#endif diff --git a/libs/ldns/compat/realloc.c b/libs/ldns/compat/realloc.c index bdaf76d026..348d3a28f4 100644 --- a/libs/ldns/compat/realloc.c +++ b/libs/ldns/compat/realloc.c @@ -8,8 +8,10 @@ #include +#ifndef _MSC_VER void *realloc (void*, size_t); void *malloc (size_t); +#endif /* Changes allocation to new sizes, copies over old data. * if oldptr is NULL, does a malloc. diff --git a/libs/ldns/dnssec.c b/libs/ldns/dnssec.c index ce02ef36fd..9a444cf9c3 100644 --- a/libs/ldns/dnssec.c +++ b/libs/ldns/dnssec.c @@ -14,7 +14,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #ifdef HAVE_SSL diff --git a/libs/ldns/dnssec_sign.c b/libs/ldns/dnssec_sign.c index b21094465f..4da125ee31 100644 --- a/libs/ldns/dnssec_sign.c +++ b/libs/ldns/dnssec_sign.c @@ -5,7 +5,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #ifdef HAVE_SSL diff --git a/libs/ldns/dnssec_verify.c b/libs/ldns/dnssec_verify.c index 352e44066b..23d9a43d8a 100644 --- a/libs/ldns/dnssec_verify.c +++ b/libs/ldns/dnssec_verify.c @@ -2,7 +2,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #ifdef HAVE_SSL diff --git a/libs/ldns/host2str.c b/libs/ldns/host2str.c index 6942f6aa3c..7f2ed574fa 100644 --- a/libs/ldns/host2str.c +++ b/libs/ldns/host2str.c @@ -26,7 +26,9 @@ #include #endif #include +#ifndef _MSC_VER #include +#endif #ifndef INET_ADDRSTRLEN #define INET_ADDRSTRLEN 16 diff --git a/libs/ldns/ldns/packet.h b/libs/ldns/ldns/packet.h index 687a6a2595..35d5832d76 100644 --- a/libs/ldns/ldns/packet.h +++ b/libs/ldns/ldns/packet.h @@ -35,7 +35,11 @@ #include #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #ifdef __cplusplus extern "C" { diff --git a/libs/ldns/ldns/resolver.h b/libs/ldns/ldns/resolver.h index f887aaf676..d61f524d84 100644 --- a/libs/ldns/ldns/resolver.h +++ b/libs/ldns/ldns/resolver.h @@ -26,7 +26,11 @@ #include #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #ifdef __cplusplus extern "C" { diff --git a/libs/ldns/net.c b/libs/ldns/net.c index f613ac3083..5523a6f0f5 100644 --- a/libs/ldns/net.c +++ b/libs/ldns/net.c @@ -27,7 +27,12 @@ #ifdef HAVE_ARPA_INET_H #include #endif +#ifdef _MSC_VER +#include +#include +#else #include +#endif #include #include @@ -275,7 +280,7 @@ ldns_sock_wait(int sockfd, struct timeval timeout, int write) fd_set fds; #ifndef S_SPLINT_S FD_ZERO(&fds); - FD_SET(FD_SET_T sockfd, &fds); + FD_SET(sockfd, &fds); #endif if(write) ret = select(sockfd+1, NULL, &fds, NULL, &timeout); diff --git a/libs/ldns/packet.c b/libs/ldns/packet.c index 0ac5ca8ba3..3bced3b69e 100644 --- a/libs/ldns/packet.c +++ b/libs/ldns/packet.c @@ -14,7 +14,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #ifdef HAVE_SSL diff --git a/libs/ldns/parse.c b/libs/ldns/parse.c index 0487873520..56c05be47c 100644 --- a/libs/ldns/parse.c +++ b/libs/ldns/parse.c @@ -11,7 +11,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif ldns_lookup_table ldns_directive_types[] = { { LDNS_DIR_TTL, "$TTL" }, diff --git a/libs/ldns/resolver.c b/libs/ldns/resolver.c index ace59f6944..4aca068300 100644 --- a/libs/ldns/resolver.c +++ b/libs/ldns/resolver.c @@ -13,7 +13,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif /* Access function for reading * and setting the different Resolver diff --git a/libs/ldns/rr.c b/libs/ldns/rr.c index 7b799b9b56..25c7cc72ff 100644 --- a/libs/ldns/rr.c +++ b/libs/ldns/rr.c @@ -11,7 +11,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #include diff --git a/libs/ldns/rr_functions.c b/libs/ldns/rr_functions.c index 700372b91c..1a4a75868d 100644 --- a/libs/ldns/rr_functions.c +++ b/libs/ldns/rr_functions.c @@ -18,7 +18,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif /** * return a specific rdf diff --git a/libs/ldns/sha1.c b/libs/ldns/sha1.c index 5dec680a1b..89da614c10 100644 --- a/libs/ldns/sha1.c +++ b/libs/ldns/sha1.c @@ -19,7 +19,11 @@ #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits)))) diff --git a/libs/ldns/tsig.c b/libs/ldns/tsig.c index 7fcf21da0e..c9001a9994 100644 --- a/libs/ldns/tsig.c +++ b/libs/ldns/tsig.c @@ -11,7 +11,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #ifdef HAVE_SSL #include diff --git a/libs/ldns/update.c b/libs/ldns/update.c index 01e67aa069..a6b2abc902 100644 --- a/libs/ldns/update.c +++ b/libs/ldns/update.c @@ -11,7 +11,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #include diff --git a/libs/ldns/util.c b/libs/ldns/util.c index eb24f81dbe..355da14e8e 100644 --- a/libs/ldns/util.c +++ b/libs/ldns/util.c @@ -15,10 +15,18 @@ #include #include #include +#ifdef _MSC_VER +#include +#else #include +#endif #include #include +#ifndef _MSC_VER #include +#else +#include +#endif #include #ifdef HAVE_SSL diff --git a/libs/ldns/wire2host.c b/libs/ldns/wire2host.c index e87fcdf5df..9b94046c61 100644 --- a/libs/ldns/wire2host.c +++ b/libs/ldns/wire2host.c @@ -19,7 +19,11 @@ #include /*#include */ +#ifdef _MSC_VER +#include +#else #include +#endif #include diff --git a/libs/ldns/zone.c b/libs/ldns/zone.c index 917af8befc..c71f123e58 100644 --- a/libs/ldns/zone.c +++ b/libs/ldns/zone.c @@ -10,7 +10,11 @@ #include +#ifdef _MSC_VER +#include +#else #include +#endif #include ldns_rr *