diff options
Diffstat (limited to '')
-rw-r--r-- | lib/lwres/win32/DLLMain.c | 50 | ||||
-rw-r--r-- | lib/lwres/win32/Makefile.in | 19 | ||||
-rw-r--r-- | lib/lwres/win32/include/Makefile.in | 19 | ||||
-rw-r--r-- | lib/lwres/win32/include/lwres/Makefile.in | 28 | ||||
-rw-r--r-- | lib/lwres/win32/include/lwres/net.h | 230 | ||||
-rw-r--r-- | lib/lwres/win32/include/lwres/netdb.h | 512 | ||||
-rw-r--r-- | lib/lwres/win32/include/lwres/platform.h | 99 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.def | 90 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.dsp.in | 261 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.dsw | 29 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.mak.in | 798 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.vcxproj.filters.in | 138 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.vcxproj.in | 154 | ||||
-rw-r--r-- | lib/lwres/win32/liblwres.vcxproj.user | 3 | ||||
-rw-r--r-- | lib/lwres/win32/lwconfig.c | 148 | ||||
-rw-r--r-- | lib/lwres/win32/socket.c | 37 | ||||
-rw-r--r-- | lib/lwres/win32/version.c | 22 |
17 files changed, 2637 insertions, 0 deletions
diff --git a/lib/lwres/win32/DLLMain.c b/lib/lwres/win32/DLLMain.c new file mode 100644 index 0000000..46ca8ac --- /dev/null +++ b/lib/lwres/win32/DLLMain.c @@ -0,0 +1,50 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +#include <windows.h> +#include <signal.h> + +/* + * Called when we enter the DLL + */ +__declspec(dllexport) BOOL WINAPI DllMain(HINSTANCE hinstDLL, + DWORD fdwReason, LPVOID lpvReserved) +{ + switch (fdwReason) + { + /* + * The DLL is loading due to process + * initialization or a call to LoadLibrary. + */ + case DLL_PROCESS_ATTACH: + break; + + /* The attached process creates a new thread. */ + case DLL_THREAD_ATTACH: + break; + + /* The thread of the attached process terminates. */ + case DLL_THREAD_DETACH: + break; + + /* + * The DLL is unloading from a process due to + * process termination or a call to FreeLibrary. + */ + case DLL_PROCESS_DETACH: + break; + + default: + break; + } + return (TRUE); +} + diff --git a/lib/lwres/win32/Makefile.in b/lib/lwres/win32/Makefile.in new file mode 100644 index 0000000..93e2bdc --- /dev/null +++ b/lib/lwres/win32/Makefile.in @@ -0,0 +1,19 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +# $Id: Makefile.in,v 1.4 2007/06/19 23:47:23 tbox Exp $ + +srcdir = @srcdir@ +VPATH = @srcdir@ +top_srcdir = @top_srcdir@ + +SUBDIRS = include +TARGETS = + +@BIND9_MAKE_RULES@ diff --git a/lib/lwres/win32/include/Makefile.in b/lib/lwres/win32/include/Makefile.in new file mode 100644 index 0000000..d9a3044 --- /dev/null +++ b/lib/lwres/win32/include/Makefile.in @@ -0,0 +1,19 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +# $Id: Makefile.in,v 1.4 2007/06/19 23:47:23 tbox Exp $ + +srcdir = @srcdir@ +VPATH = @srcdir@ +top_srcdir = @top_srcdir@ + +SUBDIRS = lwres +TARGETS = + +@BIND9_MAKE_RULES@ diff --git a/lib/lwres/win32/include/lwres/Makefile.in b/lib/lwres/win32/include/lwres/Makefile.in new file mode 100644 index 0000000..9d388de --- /dev/null +++ b/lib/lwres/win32/include/lwres/Makefile.in @@ -0,0 +1,28 @@ +# Copyright (C) Internet Systems Consortium, Inc. ("ISC") +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# See the COPYRIGHT file distributed with this work for additional +# information regarding copyright ownership. + +# $Id: Makefile.in,v 1.4 2007/06/19 23:47:23 tbox Exp $ + +srcdir = @srcdir@ +VPATH = @srcdir@ +top_srcdir = @top_srcdir@ + +HEADERS = net.h +SUBDIRS = +TARGETS = + +@BIND9_MAKE_RULES@ + +installdirs: + $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/lwres + +install:: installdirs + for i in ${HEADERS}; do \ + ${INSTALL_DATA} $(srcdir)/$$i ${DESTDIR}${includedir}/lwres || exit 1; \ + done diff --git a/lib/lwres/win32/include/lwres/net.h b/lib/lwres/win32/include/lwres/net.h new file mode 100644 index 0000000..41ffca4 --- /dev/null +++ b/lib/lwres/win32/include/lwres/net.h @@ -0,0 +1,230 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: net.h,v 1.6 2007/06/19 23:47:23 tbox Exp $ */ + +#ifndef LWRES_NET_H +#define LWRES_NET_H 1 + +/***** + ***** Module Info + *****/ + +/* + * Basic Networking Types + * + * This module is responsible for defining the following basic networking + * types: + * + * struct in_addr + * struct in6_addr + * struct sockaddr + * struct sockaddr_in + * struct sockaddr_in6 + * + * It ensures that the AF_ and PF_ macros are defined. + * + * It declares ntoh[sl]() and hton[sl](). + * + * It declares lwres_net_aton(), lwres_net_ntop(), and lwres_net_pton(). + * + * It ensures that INADDR_LOOPBACK, INADDR_ANY and IN6ADDR_ANY_INIT + * are defined. + */ + +/*** + *** Imports. + ***/ + +/* + * Because of some sort of problem in the MS header files, this cannot + * be simple "#include <winsock2.h>", because winsock2.h tries to include + * windows.h, which then generates an error out of mswsock.h. _You_ + * figure it out. + */ +#ifndef _WINSOCKAPI_ +#define _WINSOCKAPI_ /* Prevent inclusion of winsock.h in windows.h */ +#endif + +#include <winsock2.h> +#include <sys/types.h> + +#include <lwres/ipv6.h> +#include <lwres/platform.h> /* Required for LWRES_PLATFORM_*. */ + +#include <lwres/lang.h> + +#ifndef INADDR_LOOPBACK +#define INADDR_LOOPBACK 0x7f000001UL +#endif +/* + * Fix the FD_SET and FD_CLR Macros to properly cast + */ +#undef FD_CLR +#define FD_CLR(fd, set) do { \ + u_int __i; \ + for (__i = 0; __i < ((fd_set FAR *)(set))->fd_count; __i++) { \ + if (((fd_set FAR *)(set))->fd_array[__i] == (SOCKET) fd) { \ + while (__i < ((fd_set FAR *)(set))->fd_count-1) { \ + ((fd_set FAR *)(set))->fd_array[__i] = \ + ((fd_set FAR *)(set))->fd_array[__i+1]; \ + __i++; \ + } \ + ((fd_set FAR *)(set))->fd_count--; \ + break; \ + } \ + } \ +} while (0) + +#undef FD_SET +#define FD_SET(fd, set) do { \ + u_int __i; \ + for (__i = 0; __i < ((fd_set FAR *)(set))->fd_count; __i++) { \ + if (((fd_set FAR *)(set))->fd_array[__i] == (SOCKET)(fd)) { \ + break; \ + } \ + } \ + if (__i == ((fd_set FAR *)(set))->fd_count) { \ + if (((fd_set FAR *)(set))->fd_count < FD_SETSIZE) { \ + ((fd_set FAR *)(set))->fd_array[__i] = (SOCKET)(fd); \ + ((fd_set FAR *)(set))->fd_count++; \ + } \ + } \ +} while (0) + +/* + * Windows Sockets errors redefined as regular Berkeley error constants. + * These are usually commented out in Windows NT to avoid conflicts with errno.h. + * Use the WSA constants instead. + */ + +#include <errno.h> + +#ifndef EWOULDBLOCK +#define EWOULDBLOCK WSAEWOULDBLOCK +#endif +#ifndef EINPROGRESS +#define EINPROGRESS WSAEINPROGRESS +#endif +#ifndef EALREADY +#define EALREADY WSAEALREADY +#endif +#ifndef ENOTSOCK +#define ENOTSOCK WSAENOTSOCK +#endif +#ifndef EDESTADDRREQ +#define EDESTADDRREQ WSAEDESTADDRREQ +#endif +#ifndef EMSGSIZE +#define EMSGSIZE WSAEMSGSIZE +#endif +#ifndef EPROTOTYPE +#define EPROTOTYPE WSAEPROTOTYPE +#endif +#ifndef ENOPROTOOPT +#define ENOPROTOOPT WSAENOPROTOOPT +#endif +#ifndef EPROTONOSUPPORT +#define EPROTONOSUPPORT WSAEPROTONOSUPPORT +#endif +#ifndef ESOCKTNOSUPPORT +#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT +#endif +#ifndef EOPNOTSUPP +#define EOPNOTSUPP WSAEOPNOTSUPP +#endif +#ifndef EPFNOSUPPORT +#define EPFNOSUPPORT WSAEPFNOSUPPORT +#endif +#ifndef EAFNOSUPPORT +#define EAFNOSUPPORT WSAEAFNOSUPPORT +#endif +#ifndef EADDRINUSE +#define EADDRINUSE WSAEADDRINUSE +#endif +#ifndef EADDRNOTAVAIL +#define EADDRNOTAVAIL WSAEADDRNOTAVAIL +#endif +#ifndef ENETDOWN +#define ENETDOWN WSAENETDOWN +#endif +#ifndef ENETUNREACH +#define ENETUNREACH WSAENETUNREACH +#endif +#ifndef ENETRESET +#define ENETRESET WSAENETRESET +#endif +#ifndef ECONNABORTED +#define ECONNABORTED WSAECONNABORTED +#endif +#ifndef ECONNRESET +#define ECONNRESET WSAECONNRESET +#endif +#ifndef ENOBUFS +#define ENOBUFS WSAENOBUFS +#endif +#ifndef EISCONN +#define EISCONN WSAEISCONN +#endif +#ifndef ENOTCONN +#define ENOTCONN WSAENOTCONN +#endif +#ifndef ESHUTDOWN +#define ESHUTDOWN WSAESHUTDOWN +#endif +#ifndef ETOOMANYREFS +#define ETOOMANYREFS WSAETOOMANYREFS +#endif +#ifndef ETIMEDOUT +#define ETIMEDOUT WSAETIMEDOUT +#endif +#ifndef ECONNREFUSED +#define ECONNREFUSED WSAECONNREFUSED +#endif +#ifndef ELOOP +#define ELOOP WSAELOOP +#endif +#ifndef EHOSTDOWN +#define EHOSTDOWN WSAEHOSTDOWN +#endif +#ifndef EHOSTUNREACH +#define EHOSTUNREACH WSAEHOSTUNREACH +#endif +#ifndef EPROCLIM +#define EPROCLIM WSAEPROCLIM +#endif +#ifndef EUSERS +#define EUSERS WSAEUSERS +#endif +#ifndef EDQUOT +#define EDQUOT WSAEDQUOT +#endif +#ifndef ESTALE +#define ESTALE WSAESTALE +#endif +#ifndef EREMOTE +#define EREMOTE WSAEREMOTE +#endif + +LWRES_LANG_BEGINDECLS + +const char * +lwres_net_ntop(int af, const void *src, char *dst, size_t size); + +int +lwres_net_pton(int af, const char *src, void *dst); + +int +lwres_net_aton(const char *cp, struct in_addr *addr); + +LWRES_LANG_ENDDECLS + +#endif /* LWRES_NET_H */ diff --git a/lib/lwres/win32/include/lwres/netdb.h b/lib/lwres/win32/include/lwres/netdb.h new file mode 100644 index 0000000..f0d8a86 --- /dev/null +++ b/lib/lwres/win32/include/lwres/netdb.h @@ -0,0 +1,512 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: netdb.h,v 1.7 2007/06/19 23:47:23 tbox Exp $ */ + +#ifndef LWRES_NETDB_H +#define LWRES_NETDB_H 1 + +#include <stddef.h> /* Required on FreeBSD (and others?) for size_t. */ + +#define off_t _off_t +#include <sys/types.h> + +#include <lwres/net.h> +#include <lwres/lang.h> + +/* + * Define if <netdb.h> does not declare struct addrinfo. + */ +#if _MSC_VER < 1600 +#define ISC_LWRES_NEEDADDRINFO 1 +#endif + +#ifdef ISC_LWRES_NEEDADDRINFO +struct addrinfo { + int ai_flags; /* AI_PASSIVE, AI_CANONNAME */ + int ai_family; /* PF_xxx */ + int ai_socktype; /* SOCK_xxx */ + int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */ + size_t ai_addrlen; /* Length of ai_addr */ + char *ai_canonname; /* Canonical name for hostname */ + struct sockaddr *ai_addr; /* Binary address */ + struct addrinfo *ai_next; /* Next structure in linked list */ +}; +#endif + +/* + * Undefine all \#defines we are interested in as <netdb.h> may or may not have + * defined them. + */ + +/* + * Error return codes from gethostbyname() and gethostbyaddr() + * (left in extern int h_errno). + */ + +#undef NETDB_INTERNAL +#undef NETDB_SUCCESS +#undef HOST_NOT_FOUND +#undef TRY_AGAIN +#undef NO_RECOVERY +#undef NO_DATA +#undef NO_ADDRESS + +#define NETDB_INTERNAL -1 /* see errno */ +#define NETDB_SUCCESS 0 /* no problem */ +#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */ +#define TRY_AGAIN 2 /* Non-Authoritative Host not found, or SERVERFAIL */ +#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */ +#define NO_DATA 4 /* Valid name, no data record of requested type */ +#define NO_ADDRESS NO_DATA /* no address, look for MX record */ + +/* + * Error return codes from getaddrinfo() + */ + +#undef EAI_ADDRFAMILY +#undef EAI_AGAIN +#undef EAI_BADFLAGS +#undef EAI_FAIL +#undef EAI_FAMILY +#undef EAI_MEMORY +#undef EAI_NODATA +#undef EAI_NONAME +#undef EAI_SERVICE +#undef EAI_SOCKTYPE +#undef EAI_SYSTEM +#undef EAI_BADHINTS +#undef EAI_PROTOCOL +#undef EAI_MAX + +#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */ +#define EAI_AGAIN 2 /* temporary failure in name resolution */ +#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ +#define EAI_FAIL 4 /* non-recoverable failure in name resolution */ +#define EAI_FAMILY 5 /* ai_family not supported */ +#define EAI_MEMORY 6 /* memory allocation failure */ +#define EAI_NODATA 7 /* no address associated with hostname */ +#define EAI_NONAME 8 /* hostname nor servname provided, or not known */ +#define EAI_SERVICE 9 /* servname not supported for ai_socktype */ +#define EAI_SOCKTYPE 10 /* ai_socktype not supported */ +#define EAI_SYSTEM 11 /* system error returned in errno */ +#define EAI_BADHINTS 12 +#define EAI_PROTOCOL 13 +#define EAI_MAX 14 + +/* + * Flag values for getaddrinfo() + */ +#undef AI_PASSIVE +#undef AI_CANONNAME +#undef AI_NUMERICHOST + +#define AI_PASSIVE 0x00000001 +#define AI_CANONNAME 0x00000002 +#define AI_NUMERICHOST 0x00000004 + +/* + * Flag values for getipnodebyname() + */ +#undef AI_V4MAPPED +#undef AI_ALL +#undef AI_ADDRCONFIG +#undef AI_DEFAULT + +#define AI_V4MAPPED 0x00000008 +#define AI_ALL 0x00000010 +#define AI_ADDRCONFIG 0x00000020 +#define AI_DEFAULT (AI_V4MAPPED|AI_ADDRCONFIG) + +/* + * Constants for lwres_getnameinfo() + */ +#undef NI_MAXHOST +#undef NI_MAXSERV + +#define NI_MAXHOST 1025 +#define NI_MAXSERV 32 + +/* + * Flag values for lwres_getnameinfo() + */ +#undef NI_NOFQDN +#undef NI_NUMERICHOST +#undef NI_NAMEREQD +#undef NI_NUMERICSERV +#undef NI_DGRAM +#undef NI_NUMERICSCOPE + +#define NI_NOFQDN 0x00000001 +#define NI_NUMERICHOST 0x00000002 +#define NI_NAMEREQD 0x00000004 +#define NI_NUMERICSERV 0x00000008 +#define NI_DGRAM 0x00000010 +#define NI_NUMERICSCOPE 0x00000020 /*2553bis-00*/ + +/* + * Structures for getrrsetbyname() + */ +struct rdatainfo { + unsigned int rdi_length; + unsigned char *rdi_data; +}; + +struct rrsetinfo { + unsigned int rri_flags; + int rri_rdclass; + int rri_rdtype; + unsigned int rri_ttl; + unsigned int rri_nrdatas; + unsigned int rri_nsigs; + char *rri_name; + struct rdatainfo *rri_rdatas; + struct rdatainfo *rri_sigs; +}; + +/* + * Flags for getrrsetbyname() + */ +#define RRSET_VALIDATED 0x00000001 + /* Set was dnssec validated */ + +/* + * Return codes for getrrsetbyname() + */ +#define ERRSET_SUCCESS 0 +#define ERRSET_NOMEMORY 1 +#define ERRSET_FAIL 2 +#define ERRSET_INVAL 3 +#define ERRSET_NONAME 4 +#define ERRSET_NODATA 5 + +/* + * Define to map into lwres_ namespace. + */ + +#define LWRES_NAMESPACE + +#ifdef LWRES_NAMESPACE + +/* + * Use our versions not the ones from the C library. + */ + +#ifdef getnameinfo +#undef getnameinfo +#endif +#define getnameinfo lwres_getnameinfo + +#ifdef getaddrinfo +#undef getaddrinfo +#endif +#define getaddrinfo lwres_getaddrinfo + +#ifdef freeaddrinfo +#undef freeaddrinfo +#endif +#define freeaddrinfo lwres_freeaddrinfo + +#ifdef gai_strerror +#undef gai_strerror +#endif +#define gai_strerror lwres_gai_strerror + +#ifdef herror +#undef herror +#endif +#define herror lwres_herror + +#ifdef hstrerror +#undef hstrerror +#endif +#define hstrerror lwres_hstrerror + +#ifdef getipnodebyname +#undef getipnodebyname +#endif +#define getipnodebyname lwres_getipnodebyname + +#ifdef getipnodebyaddr +#undef getipnodebyaddr +#endif +#define getipnodebyaddr lwres_getipnodebyaddr + +#ifdef freehostent +#undef freehostent +#endif +#define freehostent lwres_freehostent + +#ifdef gethostbyname +#undef gethostbyname +#endif +#define gethostbyname lwres_gethostbyname + +#ifdef gethostbyname2 +#undef gethostbyname2 +#endif +#define gethostbyname2 lwres_gethostbyname2 + +#ifdef gethostbyaddr +#undef gethostbyaddr +#endif +#define gethostbyaddr lwres_gethostbyaddr + +#ifdef gethostent +#undef gethostent +#endif +#define gethostent lwres_gethostent + +#ifdef sethostent +#undef sethostent +#endif +#define sethostent lwres_sethostent + +#ifdef endhostent +#undef endhostent +#endif +#define endhostent lwres_endhostent + +/* #define sethostfile lwres_sethostfile */ + +#ifdef gethostbyname_r +#undef gethostbyname_r +#endif +#define gethostbyname_r lwres_gethostbyname_r + +#ifdef gethostbyaddr_r +#undef gethostbyaddr_r +#endif +#define gethostbyaddr_r lwres_gethostbyaddr_r + +#ifdef gethostent_r +#undef gethostent_r +#endif +#define gethostent_r lwres_gethostent_r + +#ifdef sethostent_r +#undef sethostent_r +#endif +#define sethostent_r lwres_sethostent_r + +#ifdef endhostent_r +#undef endhostent_r +#endif +#define endhostent_r lwres_endhostent_r + +#ifdef getrrsetbyname +#undef getrrsetbyname +#endif +#define getrrsetbyname lwres_getrrsetbyname + +#ifdef freerrset +#undef freerrset +#endif +#define freerrset lwres_freerrset + +#ifdef notyet +#define getservbyname lwres_getservbyname +#define getservbyport lwres_getservbyport +#define getservent lwres_getservent +#define setservent lwres_setservent +#define endservent lwres_endservent + +#define getservbyname_r lwres_getservbyname_r +#define getservbyport_r lwres_getservbyport_r +#define getservent_r lwres_getservent_r +#define setservent_r lwres_setservent_r +#define endservent_r lwres_endservent_r + +#define getprotobyname lwres_getprotobyname +#define getprotobynumber lwres_getprotobynumber +#define getprotoent lwres_getprotoent +#define setprotoent lwres_setprotoent +#define endprotoent lwres_endprotoent + +#define getprotobyname_r lwres_getprotobyname_r +#define getprotobynumber_r lwres_getprotobynumber_r +#define getprotoent_r lwres_getprotoent_r +#define setprotoent_r lwres_setprotoent_r +#define endprotoent_r lwres_endprotoent_r + +#ifdef getnetbyname +#undef getnetbyname +#endif +#define getnetbyname lwres_getnetbyname + +#ifdef getnetbyaddr +#undef getnetbyaddr +#endif +#define getnetbyaddr lwres_getnetbyaddr + +#ifdef getnetent +#undef getnetent +#endif +#define getnetent lwres_getnetent + +#ifdef setnetent +#undef setnetent +#endif +#define setnetent lwres_setnetent + +#ifdef endnetent +#undef endnetent +#endif +#define endnetent lwres_endnetent + + +#ifdef getnetbyname_r +#undef getnetbyname_r +#endif +#define getnetbyname_r lwres_getnetbyname_r + +#ifdef getnetbyaddr_r +#undef getnetbyaddr_r +#endif +#define getnetbyaddr_r lwres_getnetbyaddr_r + +#ifdef getnetent_r +#undef getnetent_r +#endif +#define getnetent_r lwres_getnetent_r + +#ifdef setnetent_r +#undef setnetent_r +#endif +#define setnetent_r lwres_setnetent_r + +#ifdef endnetent_r +#undef endnetent_r +#endif +#define endnetent_r lwres_endnetent_r +#endif /* notyet */ + +#ifdef h_errno +#undef h_errno +#endif +#define h_errno lwres_h_errno + +#endif /* LWRES_NAMESPACE */ + +LWRES_LANG_BEGINDECLS + +LIBLWRES_EXTERNAL_DATA extern int lwres_h_errno; + +int lwres_getaddrinfo(const char *, const char *, + const struct addrinfo *, struct addrinfo **); +int lwres_getnameinfo(const struct sockaddr *, size_t, char *, + size_t, char *, size_t, int); +void lwres_freeaddrinfo(struct addrinfo *); +char *lwres_gai_strerror(int); + +struct hostent *lwres_gethostbyaddr(const char *, int, int); +struct hostent *lwres_gethostbyname(const char *); +struct hostent *lwres_gethostbyname2(const char *, int); +struct hostent *lwres_gethostent(void); +struct hostent *lwres_getipnodebyname(const char *, int, int, int *); +struct hostent *lwres_getipnodebyaddr(const void *, size_t, int, int *); +void lwres_endhostent(void); +void lwres_sethostent(int); +/* void lwres_sethostfile(const char *); */ +void lwres_freehostent(struct hostent *); + +int lwres_getrrsetbyname(const char *, unsigned int, unsigned int, + unsigned int, struct rrsetinfo **); +void lwres_freerrset(struct rrsetinfo *); + +#ifdef notyet +struct netent *lwres_getnetbyaddr(unsigned long, int); +struct netent *lwres_getnetbyname(const char *); +struct netent *lwres_getnetent(void); +void lwres_endnetent(void); +void lwres_setnetent(int); + +struct protoent *lwres_getprotobyname(const char *); +struct protoent *lwres_getprotobynumber(int); +struct protoent *lwres_getprotoent(void); +void lwres_endprotoent(void); +void lwres_setprotoent(int); + +struct servent *lwres_getservbyname(const char *, const char *); +struct servent *lwres_getservbyport(int, const char *); +struct servent *lwres_getservent(void); +void lwres_endservent(void); +void lwres_setservent(int); +#endif /* notyet */ + +void lwres_herror(const char *); +const char *lwres_hstrerror(int); + + +#ifdef _REENTRANT +struct hostent *lwres_gethostbyaddr_r(const char *, int, int, struct hostent *, + char *, int, int *); +struct hostent *lwres_gethostbyname_r(const char *, struct hostent *, + char *, int, int *); +struct hostent *lwres_gethostent_r(struct hostent *, char *, int, int *); +void lwres_sethostent_r(int); +void lwres_endhostent_r(void); + +#ifdef notyet +struct netent *lwres_getnetbyname_r(const char *, struct netent *, + char *, int); +struct netent *lwres_getnetbyaddr_r(long, int, struct netent *, + char *, int); +struct netent *lwres_getnetent_r(struct netent *, char *, int); +void lwres_setnetent_r(int); +void lwres_endnetent_r(void); + +struct protoent *lwres_getprotobyname_r(const char *, + struct protoent *, char *, int); +struct protoent *lwres_getprotobynumber_r(int, + struct protoent *, char *, int); +struct protoent *lwres_getprotoent_r(struct protoent *, char *, int); +void lwres_setprotoent_r(int); +void lwres_endprotoent_r(void); + +struct servent *lwres_getservbyname_r(const char *name, const char *, + struct servent *, char *, int); +struct servent *lwres_getservbyport_r(int port, const char *, + struct servent *, char *, int); +struct servent *lwres_getservent_r(struct servent *, char *, int); +void lwres_setservent_r(int); +void lwres_endservent_r(void); +#endif /* notyet */ +#endif /* _REENTRANT */ + +LWRES_LANG_ENDDECLS + +#ifdef notyet +/* This is nec'y to make this include file properly replace the sun version. */ +#ifdef sun +#ifdef __GNU_LIBRARY__ +#include <rpc/netdb.h> /* Required. */ +#else /* !__GNU_LIBRARY__ */ +struct rpcent { + char *r_name; /* name of server for this rpc program */ + char **r_aliases; /* alias list */ + int r_number; /* rpc program number */ +}; +struct rpcent *lwres_getrpcbyname(); +struct rpcent *lwres_getrpcbynumber(), +struct rpcent *lwres_getrpcent(); +#endif /* __GNU_LIBRARY__ */ +#endif /* sun */ +#endif /* notyet */ + +/* + * Tell Emacs to use C mode on this file. + * Local variables: + * mode: c + * End: + */ + +#endif /* LWRES_NETDB_H */ diff --git a/lib/lwres/win32/include/lwres/platform.h b/lib/lwres/win32/include/lwres/platform.h new file mode 100644 index 0000000..1484e47 --- /dev/null +++ b/lib/lwres/win32/include/lwres/platform.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: platform.h,v 1.7 2007/06/18 23:47:52 tbox Exp $ */ + +#ifndef LWRES_PLATFORM_H +#define LWRES_PLATFORM_H 1 + +/***** + ***** Platform-dependent defines. + *****/ + +/*** + *** Network. + ***/ + +/* + * Define if this system needs the <netinet/in6.h> header file for IPv6. + */ +/*@LWRES_PLATFORM_NEEDNETINETIN6H@ */ + +/* + * Define if this system needs the <netinet6/in6.h> header file for IPv6. + */ +/*@LWRES_PLATFORM_NEEDNETINET6IN6H@ */ + +/* + * If sockaddrs on this system have an sa_len field, LWRES_PLATFORM_HAVESALEN + * will be defined. + */ +/*@LWRES_PLATFORM_HAVESALEN@ */ + +/* + * If this system has the IPv6 structure definitions, LWRES_PLATFORM_HAVEIPV6 + * will be defined. + */ +/*@LWRES_PLATFORM_HAVEIPV6@ */ + +/* + * If this system is missing in6addr_any, LWRES_PLATFORM_NEEDIN6ADDRANY will + * be defined. + */ +#define LWRES_PLATFORM_NEEDIN6ADDRANY + +/* + * If this system has in_addr6, rather than in6_addr, + * LWRES_PLATFORM_HAVEINADDR6 will be defined. + */ +/*@LWRES_PLATFORM_HAVEINADDR6@ */ + +/* + * Defined if unistd.h does not cause fd_set to be delared. + */ +/*@LWRES_PLATFORM_NEEDSYSSELECTH@ */ + +/* VS2005 does not provide strlcpy() */ +#define LWRES_PLATFORM_NEEDSTRLCPY + +/* + * Define some Macros + */ +#ifdef LIBLWRES_EXPORTS +#define LIBLWRES_EXTERNAL_DATA __declspec(dllexport) +#else +#define LIBLWRES_EXTERNAL_DATA __declspec(dllimport) +#endif + +/* + * Define the MAKE_NONBLOCKING Macro here since it can get used in + * a number of places. + */ +#define MAKE_NONBLOCKING(sd, retval) \ +do { \ + int _on = 1; \ + retval = ioctlsocket((SOCKET) sd, FIONBIO, &_on); \ +} while (0) + +/* + * Need to define close here since lwres closes sockets and not files + */ +#undef close +#define close closesocket + +/* + * Internal to liblwres. + */ +void InitSockets(void); + +void DestroySockets(void); + +#endif /* LWRES_PLATFORM_H */ diff --git a/lib/lwres/win32/liblwres.def b/lib/lwres/win32/liblwres.def new file mode 100644 index 0000000..e3ce6e5 --- /dev/null +++ b/lib/lwres/win32/liblwres.def @@ -0,0 +1,90 @@ +LIBRARY liblwres + +; Exported Functions +EXPORTS + +lwres_addr_parse +lwres_buffer_add +lwres_buffer_back +lwres_buffer_clear +lwres_buffer_first +lwres_buffer_forward +lwres_buffer_getmem +lwres_buffer_getuint16 +lwres_buffer_getuint32 +lwres_buffer_getuint8 +lwres_buffer_init +lwres_buffer_invalidate +lwres_buffer_putmem +lwres_buffer_putuint16 +lwres_buffer_putuint32 +lwres_buffer_putuint8 +lwres_buffer_subtract +lwres_conf_clear +lwres_conf_get +lwres_conf_init +lwres_conf_parse +lwres_conf_print +lwres_context_allocmem +lwres_context_create +lwres_context_destroy +lwres_context_freemem +lwres_context_getsocket +lwres_context_initserial +lwres_context_nextserial +lwres_context_recv +lwres_context_send +lwres_context_sendrecv +lwres_data_parse +lwres_freeaddrinfo +lwres_freehostent +lwres_freerrset +lwres_gabnrequest_free +lwres_gabnrequest_parse +lwres_gabnrequest_render +lwres_gabnresponse_free +lwres_gabnresponse_parse +lwres_gabnresponse_render +lwres_gai_strerror +lwres_getaddrinfo +lwres_getaddrsbyname +lwres_gethostbyaddr +lwres_gethostbyname +lwres_gethostbyname2 +lwres_getipnodebyaddr +lwres_getipnodebyname +lwres_getnamebyaddr +lwres_getnameinfo +lwres_getrdatabyname +lwres_getrrsetbyname +lwres_gnbarequest_free +lwres_gnbarequest_parse +lwres_gnbarequest_render +lwres_gnbaresponse_free +lwres_gnbaresponse_parse +lwres_gnbaresponse_render +lwres_grbnrequest_free +lwres_grbnrequest_parse +lwres_grbnrequest_render +lwres_grbnresponse_free +lwres_grbnresponse_parse +lwres_grbnresponse_render +lwres_hstrerror +lwres_lwpacket_parseheader +lwres_lwpacket_renderheader +lwres_net_aton +lwres_net_ntop +lwres_net_pton +lwres_nooprequest_free +lwres_nooprequest_parse +lwres_nooprequest_render +lwres_noopresponse_free +lwres_noopresponse_parse +lwres_noopresponse_render +lwres_string_parse + +; Exported Data + +EXPORTS + +;lwres_h_errno DATA diff --git a/lib/lwres/win32/liblwres.dsp.in b/lib/lwres/win32/liblwres.dsp.in new file mode 100644 index 0000000..5a66a95 --- /dev/null +++ b/lib/lwres/win32/liblwres.dsp.in @@ -0,0 +1,261 @@ +# Microsoft Developer Studio Project File - Name="liblwres" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "@PLATFORM@ (x86) Dynamic-Link Library" 0x0102 + +CFG=liblwres - @PLATFORM@ Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "liblwres.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "liblwres.mak" CFG="liblwres - @PLATFORM@ Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "liblwres - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Dynamic-Link Library") +!MESSAGE "liblwres - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Dynamic-Link Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MT /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "liblwres_EXPORTS" @COPTY@ /FD /c +# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../lib/lwres/win32/include/lwres" /I "include" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBLWRES_EXPORTS" @COPTY@ /FD /c +# SUBTRACT CPP /X +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll @MACHINE@ +# ADD LINK32 user32.lib advapi32.lib ws2_32.lib iphlpapi.lib /nologo /dll @MACHINE@ /out:"../../../Build/Release/liblwres.dll" + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /MTd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "liblwres_EXPORTS" @COPTY@ /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../lib/lwres/win32/include/lwres" /I "include" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBLWRES_EXPORTS" /FR @COPTY@ /FD /GZ /c +# SUBTRACT CPP /X +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug @MACHINE@ /pdbtype:sept +# ADD LINK32 user32.lib advapi32.lib ws2_32.lib iphlpapi.lib /nologo /dll /debug @MACHINE@ /out:"../../../Build/Debug/liblwres.dll" /pdbtype:sept + +!ENDIF + +# Begin Target + +# Name "liblwres - @PLATFORM@ Release" +# Name "liblwres - @PLATFORM@ Debug" +# Begin Group "Source Files" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=..\compat.c +# End Source File +# Begin Source File + +SOURCE=..\context.c +# End Source File +# Begin Source File + +SOURCE=.\DLLMain.c +# End Source File +# Begin Source File + +SOURCE=..\gai_strerror.c +# End Source File +# Begin Source File + +SOURCE=..\getaddrinfo.c +# End Source File +# Begin Source File + +SOURCE=..\gethost.c +# End Source File +# Begin Source File + +SOURCE=..\getipnode.c +# End Source File +# Begin Source File + +SOURCE=..\getnameinfo.c +# End Source File +# Begin Source File + +SOURCE=..\getrrset.c +# End Source File +# Begin Source File + +SOURCE=..\herror.c +# End Source File +# Begin Source File + +SOURCE=..\lwbuffer.c +# End Source File +# Begin Source File + +SOURCE=.\lwconfig.c +# End Source File +# Begin Source File + +SOURCE=..\lwinetaton.c +# End Source File +# Begin Source File + +SOURCE=..\lwinetntop.c +# End Source File +# Begin Source File + +SOURCE=..\lwinetpton.c +# End Source File +# Begin Source File + +SOURCE=..\lwpacket.c +# End Source File +# Begin Source File + +SOURCE=..\lwres_gabn.c +# End Source File +# Begin Source File + +SOURCE=..\lwres_gnba.c +# End Source File +# Begin Source File + +SOURCE=..\lwres_grbn.c +# End Source File +# Begin Source File + +SOURCE=..\lwres_noop.c +# End Source File +# Begin Source File + +SOURCE=..\lwresutil.c +# End Source File +# Begin Source File + +SOURCE=.\socket.c +# End Source File +# Begin Source File + +SOURCE=.\version.c +# End Source File +# End Group +# Begin Group "Header Files" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# Begin Source File + +SOURCE=..\include\lwres\context.h +# End Source File +# Begin Source File + +SOURCE=.\include\lwres\int.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\ipv6.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\lang.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\list.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\lwbuffer.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\lwpacket.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\lwres.h +# End Source File +# Begin Source File + +SOURCE=.\include\lwres\net.h +# End Source File +# Begin Source File + +SOURCE=.\include\lwres\netdb.h +# End Source File +# Begin Source File + +SOURCE=.\include\lwres\platform.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\result.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\stdlib.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\string.h +# End Source File +# Begin Source File + +SOURCE=..\include\lwres\version.h +# End Source File +# End Group +# Begin Group "Resource Files" + +# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe" +# End Group +# Begin Source File + +SOURCE=.\liblwres.def +# End Source File +# End Target +# End Project diff --git a/lib/lwres/win32/liblwres.dsw b/lib/lwres/win32/liblwres.dsw new file mode 100644 index 0000000..06267b5 --- /dev/null +++ b/lib/lwres/win32/liblwres.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "liblwres"=".\liblwres.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/lwres/win32/liblwres.mak.in b/lib/lwres/win32/liblwres.mak.in new file mode 100644 index 0000000..30ff30d --- /dev/null +++ b/lib/lwres/win32/liblwres.mak.in @@ -0,0 +1,798 @@ +# Microsoft Developer Studio Generated NMAKE File, Based on liblwres.dsp +!IF "$(CFG)" == "" +CFG=liblwres - @PLATFORM@ Debug +!MESSAGE No configuration specified. Defaulting to liblwres - @PLATFORM@ Debug. +!ENDIF + +!IF "$(CFG)" != "liblwres - @PLATFORM@ Release" && "$(CFG)" != "liblwres - @PLATFORM@ Debug" +!MESSAGE Invalid configuration "$(CFG)" specified. +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "liblwres.mak" CFG="liblwres - @PLATFORM@ Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "liblwres - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Dynamic-Link Library") +!MESSAGE "liblwres - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Dynamic-Link Library") +!MESSAGE +!ERROR An invalid configuration is specified. +!ENDIF + +!IF "$(OS)" == "Windows_NT" +NULL= +!ELSE +NULL=nul +!ENDIF + +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" +_VC_MANIFEST_INC=0 +_VC_MANIFEST_BASENAME=__VC80 +!ELSE +_VC_MANIFEST_INC=1 +_VC_MANIFEST_BASENAME=__VC80.Debug +!ENDIF + +#################################################### +# Specifying name of temporary resource file used only in incremental builds: + +!if "$(_VC_MANIFEST_INC)" == "1" +_VC_MANIFEST_AUTO_RES=$(_VC_MANIFEST_BASENAME).auto.res +!else +_VC_MANIFEST_AUTO_RES= +!endif + +#################################################### +# _VC_MANIFEST_EMBED_EXE - command to embed manifest in EXE: + +!if "$(_VC_MANIFEST_INC)" == "1" + +#MT_SPECIAL_RETURN=1090650113 +#MT_SPECIAL_SWITCH=-notify_resource_update +MT_SPECIAL_RETURN=0 +MT_SPECIAL_SWITCH= +_VC_MANIFEST_EMBED_EXE= \ +if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \ +if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \ +rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \ +link $** /out:$@ $(LFLAGS) + +!else + +_VC_MANIFEST_EMBED_EXE= \ +if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;1 + +!endif + +#################################################### +# _VC_MANIFEST_EMBED_DLL - command to embed manifest in DLL: + +!if "$(_VC_MANIFEST_INC)" == "1" + +#MT_SPECIAL_RETURN=1090650113 +#MT_SPECIAL_SWITCH=-notify_resource_update +MT_SPECIAL_RETURN=0 +MT_SPECIAL_SWITCH= +_VC_MANIFEST_EMBED_EXE= \ +if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \ +if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \ +rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \ +link $** /out:$@ $(LFLAGS) + +!else + +_VC_MANIFEST_EMBED_EXE= \ +if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;2 + +!endif +#################################################### +# _VC_MANIFEST_CLEAN - command to clean resources files generated temporarily: + +!if "$(_VC_MANIFEST_INC)" == "1" + +_VC_MANIFEST_CLEAN=-del $(_VC_MANIFEST_BASENAME).auto.res \ + $(_VC_MANIFEST_BASENAME).auto.rc \ + $(_VC_MANIFEST_BASENAME).auto.manifest + +!else + +_VC_MANIFEST_CLEAN= + +!endif + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + +OUTDIR=.\Release +INTDIR=.\Release + +ALL : "..\..\..\Build\Release\liblwres.dll" + + +CLEAN : + -@erase "$(INTDIR)\compat.obj" + -@erase "$(INTDIR)\context.obj" + -@erase "$(INTDIR)\DLLMain.obj" + -@erase "$(INTDIR)\gai_strerror.obj" + -@erase "$(INTDIR)\getaddrinfo.obj" + -@erase "$(INTDIR)\gethost.obj" + -@erase "$(INTDIR)\getipnode.obj" + -@erase "$(INTDIR)\getnameinfo.obj" + -@erase "$(INTDIR)\getrrset.obj" + -@erase "$(INTDIR)\herror.obj" + -@erase "$(INTDIR)\lwbuffer.obj" + -@erase "$(INTDIR)\lwconfig.obj" + -@erase "$(INTDIR)\lwinetaton.obj" + -@erase "$(INTDIR)\lwinetntop.obj" + -@erase "$(INTDIR)\lwinetpton.obj" + -@erase "$(INTDIR)\lwpacket.obj" + -@erase "$(INTDIR)\lwres_gabn.obj" + -@erase "$(INTDIR)\lwres_gnba.obj" + -@erase "$(INTDIR)\lwres_grbn.obj" + -@erase "$(INTDIR)\lwres_noop.obj" + -@erase "$(INTDIR)\lwresutil.obj" + -@erase "$(INTDIR)\vc60.idb" + -@erase "$(INTDIR)\socket.obj" + -@erase "$(INTDIR)\version.obj" + -@erase "$(OUTDIR)\liblwres.exp" + -@erase "$(OUTDIR)\liblwres.lib" + -@erase "..\..\..\Build\Release\liblwres.dll" + -@$(_VC_MANIFEST_CLEAN) + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../lib/lwres/win32/include/lwres" /I "include" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBLWRES_EXPORTS" /Fp"$(INTDIR)\liblwres.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c +MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\liblwres.bsc" +BSC32_SBRS= \ + +LINK32=link.exe +LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib iphlpapi.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\liblwres.pdb" @MACHINE@ /def:".\liblwres.def" /out:"../../../Build/Release/liblwres.dll" /implib:"$(OUTDIR)\liblwres.lib" +DEF_FILE= \ + ".\liblwres.def" +LINK32_OBJS= \ + "$(INTDIR)\compat.obj" \ + "$(INTDIR)\context.obj" \ + "$(INTDIR)\DLLMain.obj" \ + "$(INTDIR)\gai_strerror.obj" \ + "$(INTDIR)\getaddrinfo.obj" \ + "$(INTDIR)\gethost.obj" \ + "$(INTDIR)\getipnode.obj" \ + "$(INTDIR)\getnameinfo.obj" \ + "$(INTDIR)\getrrset.obj" \ + "$(INTDIR)\herror.obj" \ + "$(INTDIR)\lwbuffer.obj" \ + "$(INTDIR)\lwinetaton.obj" \ + "$(INTDIR)\lwinetntop.obj" \ + "$(INTDIR)\lwinetpton.obj" \ + "$(INTDIR)\lwpacket.obj" \ + "$(INTDIR)\lwres_gabn.obj" \ + "$(INTDIR)\lwres_gnba.obj" \ + "$(INTDIR)\lwres_grbn.obj" \ + "$(INTDIR)\lwres_noop.obj" \ + "$(INTDIR)\lwresutil.obj" \ + "$(INTDIR)\socket.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\lwconfig.obj" + +"..\..\..\Build\Release\liblwres.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + $(_VC_MANIFEST_EMBED_DLL) + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + +OUTDIR=.\Debug +INTDIR=.\Debug +# Begin Custom Macros +OutDir=.\Debug +# End Custom Macros + +ALL : "..\..\..\Build\Debug\liblwres.dll" "$(OUTDIR)\liblwres.bsc" + + +CLEAN : + -@erase "$(INTDIR)\compat.obj" + -@erase "$(INTDIR)\compat.sbr" + -@erase "$(INTDIR)\context.obj" + -@erase "$(INTDIR)\context.sbr" + -@erase "$(INTDIR)\DLLMain.obj" + -@erase "$(INTDIR)\DLLMain.sbr" + -@erase "$(INTDIR)\gai_strerror.obj" + -@erase "$(INTDIR)\gai_strerror.sbr" + -@erase "$(INTDIR)\getaddrinfo.obj" + -@erase "$(INTDIR)\getaddrinfo.sbr" + -@erase "$(INTDIR)\gethost.obj" + -@erase "$(INTDIR)\gethost.sbr" + -@erase "$(INTDIR)\getipnode.obj" + -@erase "$(INTDIR)\getipnode.sbr" + -@erase "$(INTDIR)\getnameinfo.obj" + -@erase "$(INTDIR)\getnameinfo.sbr" + -@erase "$(INTDIR)\getrrset.obj" + -@erase "$(INTDIR)\getrrset.sbr" + -@erase "$(INTDIR)\herror.obj" + -@erase "$(INTDIR)\herror.sbr" + -@erase "$(INTDIR)\lwbuffer.obj" + -@erase "$(INTDIR)\lwbuffer.sbr" + -@erase "$(INTDIR)\lwconfig.obj" + -@erase "$(INTDIR)\lwconfig.sbr" + -@erase "$(INTDIR)\lwinetaton.obj" + -@erase "$(INTDIR)\lwinetaton.sbr" + -@erase "$(INTDIR)\lwinetntop.obj" + -@erase "$(INTDIR)\lwinetntop.sbr" + -@erase "$(INTDIR)\lwinetpton.obj" + -@erase "$(INTDIR)\lwinetpton.sbr" + -@erase "$(INTDIR)\lwpacket.obj" + -@erase "$(INTDIR)\lwpacket.sbr" + -@erase "$(INTDIR)\lwres_gabn.obj" + -@erase "$(INTDIR)\lwres_gabn.sbr" + -@erase "$(INTDIR)\lwres_gnba.obj" + -@erase "$(INTDIR)\lwres_gnba.sbr" + -@erase "$(INTDIR)\lwres_grbn.obj" + -@erase "$(INTDIR)\lwres_grbn.sbr" + -@erase "$(INTDIR)\lwres_noop.obj" + -@erase "$(INTDIR)\lwres_noop.sbr" + -@erase "$(INTDIR)\lwresutil.obj" + -@erase "$(INTDIR)\lwresutil.sbr" + -@erase "$(INTDIR)\vc60.idb" + -@erase "$(INTDIR)\vc60.pdb" + -@erase "$(INTDIR)\socket.obj" + -@erase "$(INTDIR)\socket.sbr" + -@erase "$(INTDIR)\version.obj" + -@erase "$(INTDIR)\version.sbr" + -@erase "$(OUTDIR)\liblwres.bsc" + -@erase "$(OUTDIR)\liblwres.exp" + -@erase "$(OUTDIR)\liblwres.lib" + -@erase "$(OUTDIR)\liblwres.pdb" + -@erase "..\..\..\Build\Debug\liblwres.dll" + -@erase "..\..\..\Build\Debug\liblwres.ilk" + -@$(_VC_MANIFEST_CLEAN) + +"$(OUTDIR)" : + if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" + +CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../lib/lwres/win32/include/lwres" /I "include" /I "../include" /I "../../../" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBLWRES_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\liblwres.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c +MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 +BSC32=bscmake.exe +BSC32_FLAGS=/nologo /o"$(OUTDIR)\liblwres.bsc" +BSC32_SBRS= \ + "$(INTDIR)\compat.sbr" \ + "$(INTDIR)\context.sbr" \ + "$(INTDIR)\DLLMain.sbr" \ + "$(INTDIR)\gai_strerror.sbr" \ + "$(INTDIR)\getaddrinfo.sbr" \ + "$(INTDIR)\gethost.sbr" \ + "$(INTDIR)\getipnode.sbr" \ + "$(INTDIR)\getnameinfo.sbr" \ + "$(INTDIR)\getrrset.sbr" \ + "$(INTDIR)\herror.sbr" \ + "$(INTDIR)\lwbuffer.sbr" \ + "$(INTDIR)\lwinetaton.sbr" \ + "$(INTDIR)\lwinetntop.sbr" \ + "$(INTDIR)\lwinetpton.sbr" \ + "$(INTDIR)\lwpacket.sbr" \ + "$(INTDIR)\lwres_gabn.sbr" \ + "$(INTDIR)\lwres_gnba.sbr" \ + "$(INTDIR)\lwres_grbn.sbr" \ + "$(INTDIR)\lwres_noop.sbr" \ + "$(INTDIR)\lwresutil.sbr" \ + "$(INTDIR)\socket.sbr" \ + "$(INTDIR)\version.sbr" \ + "$(INTDIR)\lwconfig.sbr" + +"$(OUTDIR)\liblwres.bsc" : "$(OUTDIR)" $(BSC32_SBRS) + $(BSC32) @<< + $(BSC32_FLAGS) $(BSC32_SBRS) +<< + +LINK32=link.exe +LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib iphlpapi.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\liblwres.pdb" /debug @MACHINE@ /def:".\liblwres.def" /out:"../../../Build/Debug/liblwres.dll" /implib:"$(OUTDIR)\liblwres.lib" /pdbtype:sept +DEF_FILE= \ + ".\liblwres.def" +LINK32_OBJS= \ + "$(INTDIR)\compat.obj" \ + "$(INTDIR)\context.obj" \ + "$(INTDIR)\DLLMain.obj" \ + "$(INTDIR)\gai_strerror.obj" \ + "$(INTDIR)\getaddrinfo.obj" \ + "$(INTDIR)\gethost.obj" \ + "$(INTDIR)\getipnode.obj" \ + "$(INTDIR)\getnameinfo.obj" \ + "$(INTDIR)\getrrset.obj" \ + "$(INTDIR)\herror.obj" \ + "$(INTDIR)\lwbuffer.obj" \ + "$(INTDIR)\lwinetaton.obj" \ + "$(INTDIR)\lwinetntop.obj" \ + "$(INTDIR)\lwinetpton.obj" \ + "$(INTDIR)\lwpacket.obj" \ + "$(INTDIR)\lwres_gabn.obj" \ + "$(INTDIR)\lwres_gnba.obj" \ + "$(INTDIR)\lwres_grbn.obj" \ + "$(INTDIR)\lwres_noop.obj" \ + "$(INTDIR)\lwresutil.obj" \ + "$(INTDIR)\socket.obj" \ + "$(INTDIR)\version.obj" \ + "$(INTDIR)\lwconfig.obj" + +"..\..\..\Build\Debug\liblwres.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) + $(LINK32) @<< + $(LINK32_FLAGS) $(LINK32_OBJS) +<< + $(_VC_MANIFEST_EMBED_DLL) + +!ENDIF + +.c{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.obj:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.c{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cpp{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + +.cxx{$(INTDIR)}.sbr:: + $(CPP) @<< + $(CPP_PROJ) $< +<< + + +!IF "$(NO_EXTERNAL_DEPS)" != "1" +!IF EXISTS("liblwres.dep") +!INCLUDE "liblwres.dep" +!ELSE +!MESSAGE Warning: cannot find "liblwres.dep" +!ENDIF +!ENDIF + + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" || "$(CFG)" == "liblwres - @PLATFORM@ Debug" +SOURCE=..\compat.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\compat.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\compat.obj" "$(INTDIR)\compat.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\context.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\context.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\context.obj" "$(INTDIR)\context.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=.\DLLMain.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\DLLMain.obj" : $(SOURCE) "$(INTDIR)" + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\DLLMain.obj" "$(INTDIR)\DLLMain.sbr" : $(SOURCE) "$(INTDIR)" + + +!ENDIF + +SOURCE=..\gai_strerror.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\gai_strerror.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\gai_strerror.obj" "$(INTDIR)\gai_strerror.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\getaddrinfo.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\getaddrinfo.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\getaddrinfo.obj" "$(INTDIR)\getaddrinfo.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\gethost.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\gethost.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\gethost.obj" "$(INTDIR)\gethost.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\getipnode.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\getipnode.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\getipnode.obj" "$(INTDIR)\getipnode.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\getnameinfo.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\getnameinfo.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\getnameinfo.obj" "$(INTDIR)\getnameinfo.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\getrrset.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\getrrset.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\getrrset.obj" "$(INTDIR)\getrrset.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\herror.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\herror.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\herror.obj" "$(INTDIR)\herror.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwbuffer.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwbuffer.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwbuffer.obj" "$(INTDIR)\lwbuffer.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=.\lwconfig.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwconfig.obj" : $(SOURCE) "$(INTDIR)" + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwconfig.obj" "$(INTDIR)\lwconfig.sbr" : $(SOURCE) "$(INTDIR)" + + +!ENDIF + +SOURCE=..\lwinetaton.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwinetaton.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwinetaton.obj" "$(INTDIR)\lwinetaton.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwinetntop.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwinetntop.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwinetntop.obj" "$(INTDIR)\lwinetntop.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwinetpton.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwinetpton.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwinetpton.obj" "$(INTDIR)\lwinetpton.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwpacket.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwpacket.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwpacket.obj" "$(INTDIR)\lwpacket.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwres_gabn.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwres_gabn.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwres_gabn.obj" "$(INTDIR)\lwres_gabn.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwres_gnba.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwres_gnba.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwres_gnba.obj" "$(INTDIR)\lwres_gnba.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwres_grbn.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwres_grbn.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwres_grbn.obj" "$(INTDIR)\lwres_grbn.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwres_noop.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwres_noop.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwres_noop.obj" "$(INTDIR)\lwres_noop.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=..\lwresutil.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\lwresutil.obj" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\lwresutil.obj" "$(INTDIR)\lwresutil.sbr" : $(SOURCE) "$(INTDIR)" + $(CPP) $(CPP_PROJ) $(SOURCE) + + +!ENDIF + +SOURCE=.\socket.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\socket.obj" : $(SOURCE) "$(INTDIR)" + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\socket.obj" "$(INTDIR)\socket.sbr" : $(SOURCE) "$(INTDIR)" + + +!ENDIF + +SOURCE=.\version.c + +!IF "$(CFG)" == "liblwres - @PLATFORM@ Release" + + +"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)" + + +!ELSEIF "$(CFG)" == "liblwres - @PLATFORM@ Debug" + + +"$(INTDIR)\version.obj" "$(INTDIR)\version.sbr" : $(SOURCE) "$(INTDIR)" + + +!ENDIF + + +!ENDIF + +#################################################### +# Commands to generate initial empty manifest file and the RC file +# that references it, and for generating the .res file: + +$(_VC_MANIFEST_BASENAME).auto.res : $(_VC_MANIFEST_BASENAME).auto.rc + +$(_VC_MANIFEST_BASENAME).auto.rc : $(_VC_MANIFEST_BASENAME).auto.manifest + type <<$@ +#include <winuser.h> +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ +<?xml version='1.0' encoding='UTF-8' standalone='yes'?> +<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> +</assembly> +<< KEEP diff --git a/lib/lwres/win32/liblwres.vcxproj.filters.in b/lib/lwres/win32/liblwres.vcxproj.filters.in new file mode 100644 index 0000000..990684d --- /dev/null +++ b/lib/lwres/win32/liblwres.vcxproj.filters.in @@ -0,0 +1,138 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup> + <Filter Include="Source Files"> + <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier> + <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions> + </Filter> + <Filter Include="Header Files"> + <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier> + <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions> + </Filter> + <Filter Include="Resource Files"> + <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier> + <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions> + </Filter> + </ItemGroup> + <ItemGroup> + <None Include="liblwres.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="DLLMain.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="lwconfig.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="socket.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="version.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\compat.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\context.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\gai_strerror.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\getaddrinfo.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\gethost.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\getipnode.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\getnameinfo.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\getrrset.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\herror.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwbuffer.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwinetaton.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwinetntop.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwinetpton.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwpacket.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwres_gabn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwres_gnba.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwres_grbn.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwres_noop.c"> + <Filter>Source Files</Filter> + </ClCompile> + <ClCompile Include="..\lwresutil.c"> + <Filter>Source Files</Filter> + </ClCompile> + </ItemGroup> + <ItemGroup> + <ClInclude Include="include\lwres\int.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="include\lwres\net.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="include\lwres\netdb.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="include\lwres\platform.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\context.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\ipv6.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\lang.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\list.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\lwbuffer.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\lwpacket.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\lwres.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\result.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\stdlib.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\string.h"> + <Filter>Header Files</Filter> + </ClInclude> + <ClInclude Include="..\include\lwres\version.h"> + <Filter>Header Files</Filter> + </ClInclude> + </ItemGroup> +</Project> diff --git a/lib/lwres/win32/liblwres.vcxproj.in b/lib/lwres/win32/liblwres.vcxproj.in new file mode 100644 index 0000000..c7ae18f --- /dev/null +++ b/lib/lwres/win32/liblwres.vcxproj.in @@ -0,0 +1,154 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <ItemGroup Label="ProjectConfigurations"> + <ProjectConfiguration Include="Debug|@PLATFORM@"> + <Configuration>Debug</Configuration> + <Platform>@PLATFORM@</Platform> + </ProjectConfiguration> + <ProjectConfiguration Include="Release|@PLATFORM@"> + <Configuration>Release</Configuration> + <Platform>@PLATFORM@</Platform> + </ProjectConfiguration> + </ItemGroup> + <PropertyGroup Label="Globals"> + <ProjectGuid>{EBDB30A3-E8EB-4E1D-915E-06720600A84E}</ProjectGuid> + <Keyword>Win32Proj</Keyword> + <RootNamespace>liblwres</RootNamespace> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>true</UseDebugLibraries> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration"> + <ConfigurationType>DynamicLibrary</ConfigurationType> + <UseDebugLibraries>false</UseDebugLibraries> + <WholeProgramOptimization>true</WholeProgramOptimization> + <CharacterSet>MultiByte</CharacterSet> + </PropertyGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> + <ImportGroup Label="ExtensionSettings"> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> + <PropertyGroup Label="UserMacros" /> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'"> + <LinkIncremental>true</LinkIncremental> + <OutDir>..\..\..\Build\$(Configuration)\</OutDir> + <IntDir>.\$(Configuration)\</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'"> + <LinkIncremental>false</LinkIncremental> + <OutDir>..\..\..\Build\$(Configuration)\</OutDir> + <IntDir>.\$(Configuration)\</IntDir> + </PropertyGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'"> + <ClCompile> + <PrecompiledHeader> + </PrecompiledHeader> + <WarningLevel>Level3</WarningLevel> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>WIN32;USE_MD5;@CRYPTO@_DEBUG;_WINDOWS;_USRDLL;LIBLWRES_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>.\;..\..\lwres\win32\include;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <FunctionLevelLinking>true</FunctionLevelLinking> + <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile> + <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation> + <ObjectFileName>.\$(Configuration)\</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName> + <BrowseInformation>true</BrowseInformation> + <CompileAs>CompileAsC</CompileAs> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>true</GenerateDebugInformation> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary> + <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile> + <ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'"> + <ClCompile> + <WarningLevel>Level3</WarningLevel> + <PrecompiledHeader> + </PrecompiledHeader> + <Optimization>MaxSpeed</Optimization> + <FunctionLevelLinking>true</FunctionLevelLinking> + <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions> + <PreprocessorDefinitions>WIN32;USE_MD5;@CRYPTO@NDEBUG;_WINDOWS;_USRDLL;LIBLWRES_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions> + <AdditionalIncludeDirectories>.\;..\..\lwres\win32\include;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <WholeProgramOptimization>false</WholeProgramOptimization> + <StringPooling>true</StringPooling> + <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile> + <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation> + <ObjectFileName>.\$(Configuration)\</ObjectFileName> + <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName> + <CompileAs>CompileAsC</CompileAs> + </ClCompile> + <Link> + <SubSystem>Console</SubSystem> + <GenerateDebugInformation>false</GenerateDebugInformation> + <EnableCOMDATFolding>true</EnableCOMDATFolding> + <OptimizeReferences>true</OptimizeReferences> + <AdditionalDependencies>ws2_32.lib;iphlpapi.lib;%(AdditionalDependencies)</AdditionalDependencies> + <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration> + <ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary> + <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile> + <ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile> + </Link> + </ItemDefinitionGroup> + <ItemGroup> + <None Include="liblwres.def" /> + </ItemGroup> + <ItemGroup> + <ClCompile Include="..\compat.c" /> + <ClCompile Include="..\context.c" /> + <ClCompile Include="..\gai_strerror.c" /> + <ClCompile Include="..\getaddrinfo.c" /> + <ClCompile Include="..\gethost.c" /> + <ClCompile Include="..\getipnode.c" /> + <ClCompile Include="..\getnameinfo.c" /> + <ClCompile Include="..\getrrset.c" /> + <ClCompile Include="..\herror.c" /> + <ClCompile Include="..\lwbuffer.c" /> + <ClCompile Include="..\lwinetaton.c" /> + <ClCompile Include="..\lwinetntop.c" /> + <ClCompile Include="..\lwinetpton.c" /> + <ClCompile Include="..\lwpacket.c" /> + <ClCompile Include="..\lwresutil.c" /> + <ClCompile Include="..\lwres_gabn.c" /> + <ClCompile Include="..\lwres_gnba.c" /> + <ClCompile Include="..\lwres_grbn.c" /> + <ClCompile Include="..\lwres_noop.c" /> + <ClCompile Include="DLLMain.c" /> + <ClCompile Include="lwconfig.c" /> + <ClCompile Include="socket.c" /> + <ClCompile Include="version.c" /> + </ItemGroup> + <ItemGroup> + <ClInclude Include="..\include\lwres\context.h" /> + <ClInclude Include="..\include\lwres\ipv6.h" /> + <ClInclude Include="..\include\lwres\lang.h" /> + <ClInclude Include="..\include\lwres\list.h" /> + <ClInclude Include="..\include\lwres\lwbuffer.h" /> + <ClInclude Include="..\include\lwres\lwpacket.h" /> + <ClInclude Include="..\include\lwres\lwres.h" /> + <ClInclude Include="..\include\lwres\result.h" /> + <ClInclude Include="..\include\lwres\stdlib.h" /> + <ClInclude Include="..\include\lwres\string.h" /> + <ClInclude Include="..\include\lwres\version.h" /> + <ClInclude Include="include\lwres\int.h" /> + <ClInclude Include="include\lwres\net.h" /> + <ClInclude Include="include\lwres\netdb.h" /> + <ClInclude Include="include\lwres\platform.h" /> + </ItemGroup> + <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> + <ImportGroup Label="ExtensionTargets"> + </ImportGroup> +</Project> diff --git a/lib/lwres/win32/liblwres.vcxproj.user b/lib/lwres/win32/liblwres.vcxproj.user new file mode 100644 index 0000000..695b5c7 --- /dev/null +++ b/lib/lwres/win32/liblwres.vcxproj.user @@ -0,0 +1,3 @@ +<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+</Project>
\ No newline at end of file diff --git a/lib/lwres/win32/lwconfig.c b/lib/lwres/win32/lwconfig.c new file mode 100644 index 0000000..9a6c426 --- /dev/null +++ b/lib/lwres/win32/lwconfig.c @@ -0,0 +1,148 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: lwconfig.c,v 1.7 2007/12/14 01:40:42 marka Exp $ */ + +/* + * We do this so that we may incorporate everything in the main routines + * so that we can take advantage of the fixes and changes made there + * without having to add them twice. We can then call the parse routine + * if there is a resolv.conf file and fetch our own data from the + * Windows environment otherwise. + */ + +/* + * Note that on Win32 there is normally no resolv.conf since all information + * is stored in the registry. Therefore there is no ordering like the + * contents of resolv.conf. Since the "search" or "domain" keyword, on + * Win32 if a search list is found it is used, otherwise the domain name + * is used since they are mutually exclusive. The search list can be entered + * in the DNS tab of the "Advanced TCP/IP settings" window under the same place + * that you add your nameserver list. + */ + +#define lwres_conf_parse generic_lwres_conf_parse +#include "../lwconfig.c" +#undef lwres_conf_parse + +#include <iphlpapi.h> + +#define TCPIP_SUBKEY \ + "SYSTEM\\CurrentControlSet\\Services\\Tcpip\\Parameters" + +void +get_win32_searchlist(lwres_context_t *ctx) { + HKEY hKey; + BOOL keyFound = TRUE; + char searchlist[MAX_PATH]; + DWORD searchlen = MAX_PATH; + char *cp; + lwres_conf_t *confdata; + + REQUIRE(ctx != NULL); + confdata = &ctx->confdata; + + memset(searchlist, 0, MAX_PATH); + if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, TCPIP_SUBKEY, 0, KEY_READ, &hKey) + != ERROR_SUCCESS) + keyFound = FALSE; + + if (keyFound == TRUE) { + /* Get the named directory */ + if (RegQueryValueEx(hKey, "SearchList", NULL, NULL, + (LPBYTE)searchlist, &searchlen) != ERROR_SUCCESS) + keyFound = FALSE; + RegCloseKey(hKey); + } + + confdata->searchnxt = 0; + + if (!keyFound) + return; + + cp = strtok((char *)searchlist, ", \0"); + while (cp != NULL) { + if (confdata->searchnxt == LWRES_CONFMAXSEARCH) + break; + if (strlen(cp) <= MAX_PATH && strlen(cp) > 0) { + confdata->search[confdata->searchnxt] = lwres_strdup(ctx, cp); + if (confdata->search[confdata->searchnxt] != NULL) + confdata->searchnxt++; + } + cp = strtok(NULL, ", \0"); + } +} + +lwres_result_t +lwres_conf_parse(lwres_context_t *ctx, const char *filename) { + lwres_result_t ret; + lwres_conf_t *confdata; + FIXED_INFO * FixedInfo; + ULONG BufLen = sizeof(FIXED_INFO); + DWORD dwRetVal; + IP_ADDR_STRING *pIPAddr; + + REQUIRE(ctx != NULL); + confdata = &ctx->confdata; + REQUIRE(confdata != NULL); + + /* Use the resolver if there is one */ + ret = generic_lwres_conf_parse(ctx, filename); + if ((ret != LWRES_R_NOTFOUND && ret != LWRES_R_SUCCESS) || + (ret == LWRES_R_SUCCESS && confdata->nsnext > 0)) + return (ret); + + /* + * We didn't get any nameservers so we need to do this ourselves + */ + FixedInfo = (FIXED_INFO *) GlobalAlloc(GPTR, BufLen); + dwRetVal = GetNetworkParams(FixedInfo, &BufLen); + if (dwRetVal == ERROR_BUFFER_OVERFLOW) { + GlobalFree(FixedInfo); + FixedInfo = GlobalAlloc(GPTR, BufLen); + dwRetVal = GetNetworkParams(FixedInfo, &BufLen); + } + if (dwRetVal != ERROR_SUCCESS) { + GlobalFree(FixedInfo); + return (LWRES_R_FAILURE); + } + + /* Get the search list from the registry */ + get_win32_searchlist(ctx); + + /* Use only if there is no search list */ + if (confdata->searchnxt == 0 && strlen(FixedInfo->DomainName) > 0) { + confdata->domainname = lwres_strdup(ctx, FixedInfo->DomainName); + if (confdata->domainname == NULL) { + GlobalFree(FixedInfo); + return (LWRES_R_FAILURE); + } + } else + confdata->domainname = NULL; + + /* Get the list of nameservers */ + pIPAddr = &FixedInfo->DnsServerList; + while (pIPAddr) { + if (confdata->nsnext >= LWRES_CONFMAXNAMESERVERS) + break; + + ret = lwres_create_addr(pIPAddr->IpAddress.String, + &confdata->nameservers[confdata->nsnext++], 1); + if (ret != LWRES_R_SUCCESS) { + GlobalFree(FixedInfo); + return (ret); + } + pIPAddr = pIPAddr ->Next; + } + + GlobalFree(FixedInfo); + return (LWRES_R_SUCCESS); +} diff --git a/lib/lwres/win32/socket.c b/lib/lwres/win32/socket.c new file mode 100644 index 0000000..c6453dd --- /dev/null +++ b/lib/lwres/win32/socket.c @@ -0,0 +1,37 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: socket.c,v 1.3 2007/06/18 23:47:51 tbox Exp $ */ + +#include <stdio.h> +#include <isc/print.h> +#include <lwres/platform.h> +#include <Winsock2.h> + +void +InitSockets(void) { + WORD wVersionRequested; + WSADATA wsaData; + int err; + + wVersionRequested = MAKEWORD(2, 0); + + err = WSAStartup( wVersionRequested, &wsaData ); + if (err != 0) { + fprintf(stderr, "WSAStartup() failed: %d\n", err); + exit(1); + } +} + +void +DestroySockets(void) { + WSACleanup(); +} diff --git a/lib/lwres/win32/version.c b/lib/lwres/win32/version.c new file mode 100644 index 0000000..f213b33 --- /dev/null +++ b/lib/lwres/win32/version.c @@ -0,0 +1,22 @@ +/* + * Copyright (C) Internet Systems Consortium, Inc. ("ISC") + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * See the COPYRIGHT file distributed with this work for additional + * information regarding copyright ownership. + */ + +/* $Id: version.c,v 1.6 2007/06/19 23:47:23 tbox Exp $ */ + +#include <versions.h> + +#include <lwres/version.h> + +LIBLWRES_EXTERNAL_DATA const char lwres_version[] = VERSION; + +LIBLWRES_EXTERNAL_DATA const unsigned int lwres_libinterface = LIBINTERFACE; +LIBLWRES_EXTERNAL_DATA const unsigned int lwres_librevision = LIBREVISION; +LIBLWRES_EXTERNAL_DATA const unsigned int lwres_libage = LIBAGE; |