]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[master] merge several interdependent fixes
authorEvan Hunt <each@isc.org>
Thu, 27 Feb 2014 03:00:05 +0000 (19:00 -0800)
committerEvan Hunt <each@isc.org>
Thu, 27 Feb 2014 03:00:05 +0000 (19:00 -0800)
3760.   [bug]           Improve SIT with native PKCS#11 and on Windows.
[RT #35433]

3759.   [port]          Enable delve on Windows. [RT #35441]

3758.   [port]          Enable export library APIs on windows. [RT #35382]

109 files changed:
CHANGES
bin/delve/delve.c
bin/delve/win32/delve.dsp.in [new file with mode: 0644]
bin/delve/win32/delve.dsw [new file with mode: 0644]
bin/delve/win32/delve.mak.in [new file with mode: 0644]
bin/delve/win32/delve.vcxproj.filters.in [new file with mode: 0644]
bin/delve/win32/delve.vcxproj.in [new file with mode: 0644]
bin/delve/win32/delve.vcxproj.user [new file with mode: 0644]
bin/tests/system/sit/ns1/named.conf
bin/win32/BINDInstall/BINDInstallDlg.cpp
config.h.in
config.h.win32
configure
configure.in
lib/dns/client.c
lib/dns/lib.c
lib/dns/win32/libdns.def.in
lib/dns/win32/libdns.dsp.in
lib/dns/win32/libdns.mak.in
lib/dns/win32/libdns.vcxproj.filters.in
lib/dns/win32/libdns.vcxproj.in
lib/irs/gai_strerror.c
lib/irs/getaddrinfo.c
lib/irs/resconf.c
lib/irs/win32/DLLMain.c [new file with mode: 0644]
lib/irs/win32/Makefile.in [new file with mode: 0644]
lib/irs/win32/include/Makefile.in [new file with mode: 0644]
lib/irs/win32/include/irs/Makefile.in [new file with mode: 0644]
lib/irs/win32/libirs.def [new file with mode: 0644]
lib/irs/win32/libirs.dsp.in [new file with mode: 0644]
lib/irs/win32/libirs.dsw [new file with mode: 0644]
lib/irs/win32/libirs.mak.in [new file with mode: 0644]
lib/irs/win32/libirs.vcxproj.filters.in [new file with mode: 0644]
lib/irs/win32/libirs.vcxproj.in [new file with mode: 0644]
lib/irs/win32/libirs.vcxproj.user [new file with mode: 0644]
lib/irs/win32/version.c [new file with mode: 0644]
lib/isc/aes.c
lib/isc/app_api.c
lib/isc/include/isc/aes.h
lib/isc/include/isc/app.h
lib/isc/include/isc/platform.h.in
lib/isc/include/pk11/pk11.h
lib/isc/lib.c
lib/isc/pk11.c
lib/isc/socket_api.c
lib/isc/tests/Makefile.in
lib/isc/tests/aes_test.c
lib/isc/unix/pk11_api.c
lib/isc/win32/app.c
lib/isc/win32/include/isc/platform.h.in
lib/isc/win32/libisc.def.in
lib/isc/win32/libisc.dsp.in
lib/isc/win32/libisc.mak.in
lib/isc/win32/libisc.vcxproj.filters.in
lib/isc/win32/libisc.vcxproj.in
lib/isc/win32/pk11_api.c
lib/isc/win32/socket.c
lib/isccfg/win32/libisccfg.dsp.in
lib/isccfg/win32/libisccfg.mak.in
lib/isccfg/win32/libisccfg.vcxproj.filters.in
lib/isccfg/win32/libisccfg.vcxproj.in
lib/samples/nsprobe.c
lib/samples/resolve.c
lib/samples/sample-async.c
lib/samples/sample-gai.c
lib/samples/sample-request.c
lib/samples/sample-update.c
lib/samples/win32/async.dsp.in [new file with mode: 0644]
lib/samples/win32/async.dsw [new file with mode: 0644]
lib/samples/win32/async.mak.in [new file with mode: 0644]
lib/samples/win32/async.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/async.vcxproj.in [new file with mode: 0644]
lib/samples/win32/async.vcxproj.user [new file with mode: 0644]
lib/samples/win32/gai.dsp.in [new file with mode: 0644]
lib/samples/win32/gai.dsw [new file with mode: 0644]
lib/samples/win32/gai.mak.in [new file with mode: 0644]
lib/samples/win32/gai.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/gai.vcxproj.in [new file with mode: 0644]
lib/samples/win32/gai.vcxproj.user [new file with mode: 0644]
lib/samples/win32/nsprobe.dsp.in [new file with mode: 0644]
lib/samples/win32/nsprobe.dsw [new file with mode: 0644]
lib/samples/win32/nsprobe.mak.in [new file with mode: 0644]
lib/samples/win32/nsprobe.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/nsprobe.vcxproj.in [new file with mode: 0644]
lib/samples/win32/nsprobe.vcxproj.user [new file with mode: 0644]
lib/samples/win32/request.dsp.in [new file with mode: 0644]
lib/samples/win32/request.dsw [new file with mode: 0644]
lib/samples/win32/request.mak.in [new file with mode: 0644]
lib/samples/win32/request.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/request.vcxproj.in [new file with mode: 0644]
lib/samples/win32/request.vcxproj.user [new file with mode: 0644]
lib/samples/win32/resolve.dsp.in [new file with mode: 0644]
lib/samples/win32/resolve.dsw [new file with mode: 0644]
lib/samples/win32/resolve.mak.in [new file with mode: 0644]
lib/samples/win32/resolve.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/resolve.vcxproj.in [new file with mode: 0644]
lib/samples/win32/resolve.vcxproj.user [new file with mode: 0644]
lib/samples/win32/update.dsp.in [new file with mode: 0644]
lib/samples/win32/update.dsw [new file with mode: 0644]
lib/samples/win32/update.mak.in [new file with mode: 0644]
lib/samples/win32/update.vcxproj.filters.in [new file with mode: 0644]
lib/samples/win32/update.vcxproj.in [new file with mode: 0644]
lib/samples/win32/update.vcxproj.user [new file with mode: 0644]
util/copyrights
win32utils/Configure
win32utils/bind9.sln.in
win32utils/legacy/BINDBuild.dsw.in
win32utils/legacy/BuildAll.bat.in
win32utils/legacy/BuildSetup.bat.in

diff --git a/CHANGES b/CHANGES
index 284020e2b40a5425cf69be343ca99557bf1a877a..f949607c231141526ef71797e9d6774f3003180f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,10 @@
+3760.  [bug]           Improve SIT with native PKCS#11 and on Windows.
+                       [RT #35433]
+
+3759.  [port]          Enable delve on Windows. [RT #35441]
+
+3758.  [port]          Enable export library APIs on windows. [RT #35382]
+
 3757.  [port]          Enable Python tools (dnssec-coverage,
                        dnssec-checkds) to run on Windows. [RT #34355]
 
@@ -88,8 +95,7 @@
                        same resolver and validator logic as named. This
                        allows easy validation of DNSSEC data in environments
                        with untrustworthy resolvers, and assists with
-                       troubleshooting of DNSSEC problems. (Note: not yet
-                       available on win32.) [RT #32406]
+                       troubleshooting of DNSSEC problems. [RT #32406]
 
 3740.  [contrib]       Minor fixes to configure --with-dlz-bdb,
                        --with-dlz-postgres and --with-dlz-odbc. [RT #35340]
index ff637452807907a52996ca1af5dabd1674af0c42..982d9700ff5697b70d871e28eb92eddc2f0ca7eb 100644 (file)
@@ -17,6 +17,7 @@
 #include <config.h>
 #include <bind.keys.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <signal.h>
 
 #include <arpa/inet.h>
 
-#include <unistd.h>
+#include <netdb.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <netdb.h>
+#include <unistd.h>
 
 #include <isc/app.h>
 #include <isc/base64.h>
@@ -37,6 +40,9 @@
 #include <isc/lib.h>
 #include <isc/log.h>
 #include <isc/mem.h>
+#ifdef WIN32
+#include <isc/ntpaths.h>
+#endif
 #include <isc/parseint.h>
 #include <isc/print.h>
 #include <isc/sockaddr.h>
@@ -538,7 +544,7 @@ convert_name(dns_fixedname_t *fn, dns_name_t **name, const char *text) {
        isc_result_t result;
        isc_buffer_t b;
        dns_name_t *n;
-       size_t len;
+       unsigned int len;
 
        REQUIRE(fn != NULL && name != NULL && text != NULL);
        len = strlen(text);
@@ -694,8 +700,16 @@ setup_dnsseckeys(dns_client_t *client) {
        if (!root_validation && !dlv_validation)
                return (ISC_R_SUCCESS);
 
-       if (filename == NULL)
+       if (filename == NULL) {
+#ifndef WIN32
                filename = SYSCONFDIR "/bind.keys";
+#else
+               static char buf[MAX_PATH];
+               strlcpy(buf, isc_ntpaths_get(SYS_CONF_DIR), sizeof(buf));
+               strlcat(buf, "\\bind.keys", sizeof(buf));
+               filename = buf;
+#endif
+       }
 
        if (trust_anchor == NULL)
                trust_anchor = isc_mem_strdup(mctx, ".");
@@ -816,7 +830,7 @@ addserver(dns_client_t *client) {
                        memset(sa, 0, sizeof(*sa));
                        ISC_LINK_INIT(sa, link);
                        memmove(&sa->type, cur->ai_addr, cur->ai_addrlen);
-                       sa->length = cur->ai_addrlen;
+                       sa->length = (unsigned int)cur->ai_addrlen;
                        ISC_LIST_APPEND(servers, sa, link);
                }
                freeaddrinfo(res);
@@ -1517,13 +1531,15 @@ main(int argc, char *argv[]) {
        isc_socketmgr_t *socketmgr = NULL;
        isc_timermgr_t *timermgr = NULL;
        dns_master_style_t *style = NULL;
+#ifndef WIN32
        struct sigaction sa;
+#endif
 
        preparse_args(argc, argv);
        progname = argv[0];
 
-       argc -= optind;
-       argv += optind;
+       argc--;
+       argv++;
 
        isc_lib_register();
        result = dns_lib_init();
@@ -1547,11 +1563,13 @@ main(int argc, char *argv[]) {
 
        CHECK(isc_app_ctxstart(actx));
 
+#ifndef WIN32
        /* Unblock SIGINT if it's been blocked by isc_app_ctxstart() */
        memset(&sa, 0, sizeof(sa));
        sa.sa_handler = SIG_DFL;
        if (sigfillset(&sa.sa_mask) != 0 || sigaction(SIGINT, &sa, NULL) < 0)
                fatal("Couldn't set up signal handler");
+#endif
 
        /* Create client */
        result = dns_client_createx2(mctx, actx, taskmgr, socketmgr, timermgr,
diff --git a/bin/delve/win32/delve.dsp.in b/bin/delve/win32/delve.dsp.in
new file mode 100644 (file)
index 0000000..6246797
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="delve" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=delve - @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 "delve.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 "delve.mak" CFG="delve - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "delve - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "delve - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "delve - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/irs/win32/include" /I "../../../lib/irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib ../../../lib/isccfg/win32/Release/libisccfg.lib ../../../lib/irs/win32/Release/libirs.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/delve.exe"
+
+!ELSEIF  "$(CFG)" == "delve - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/irs/win32/include" /I "../../../lib/irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib ../../../lib/isccfg/win32/Debug/libisccfg.lib ../../../lib/irs/win32/Debug/libirs.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/delve.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "delve - @PLATFORM@ Release"
+# Name "delve - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\delve.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/bin/delve/win32/delve.dsw b/bin/delve/win32/delve.dsw
new file mode 100644 (file)
index 0000000..79cda30
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "delve"=".\delve.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/bin/delve/win32/delve.mak.in b/bin/delve/win32/delve.mak.in
new file mode 100644 (file)
index 0000000..5ddda12
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on delve.dsp
+!IF "$(CFG)" == ""
+CFG=delve - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to delve - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "delve - @PLATFORM@ Release" && "$(CFG)" != "delve - @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 "delve.mak" CFG="delve - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "delve - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "delve - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "delve - @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)" == "delve - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\delve.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\delve.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\delve.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/irs/win32/include" /I "../../../lib/irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\delve.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\delve.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Release/libisc.lib ../../../lib/dns/win32/Release/libdns.lib ../../../lib/isccfg/win32/Release/libisccfg.lib ../../../lib/irs/win32/Release/libirs.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\delve.pdb" @MACHINE@ /out:"../../../Build/Release/delve.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\delve.obj"
+
+"..\..\..\Build\Release\delve.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "delve - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\delve.exe" "$(OUTDIR)\delve.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\delve.obj"
+       -@erase "$(INTDIR)\delve.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\delve.pdb"
+       -@erase "$(OUTDIR)\delve.bsc"
+       -@erase "..\..\..\Build\Debug\delve.exe"
+       -@erase "..\..\..\Build\Debug\delve.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isc/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /I "../../../lib/irs/win32/include" /I "../../../lib/irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\delve.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\delve.sbr"
+
+"$(OUTDIR)\delve.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../../lib/isc/win32/Debug/libisc.lib ../../../lib/dns/win32/Debug/libdns.lib ../../../lib/isccfg/win32/Debug/libisccfg.lib ../../../lib/irs/win32/Debug/libirs.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\delve.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/delve.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\delve.obj"
+
+"..\..\..\Build\Debug\delve.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("delve.dep")
+!INCLUDE "delve.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "delve.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "delve - @PLATFORM@ Release" || "$(CFG)" == "delve - @PLATFORM@ Debug"
+SOURCE="..\delve.c"
+
+!IF  "$(CFG)" == "delve - @PLATFORM@ Release"
+
+
+"$(INTDIR)\delve.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "delve - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\delve.obj"  "$(INTDIR)\delve.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/bin/delve/win32/delve.vcxproj.filters.in b/bin/delve/win32/delve.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..6e0337e
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\delve.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/bin/delve/win32/delve.vcxproj.in b/bin/delve/win32/delve.vcxproj.in
new file mode 100644 (file)
index 0000000..f8671c9
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>delve</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\isccfg\include;..\..\..\lib\dns\win32\include;..\..\..\lib\dns\include;..\..\..\lib\irs\win32\include;..\..\..\lib\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\lib\isc\win32;..\..\..\lib\isc\win32\include;..\..\..\lib\isc\include;..\..\..\lib\isccfg\include;..\..\..\lib\dns\win32\include;..\..\..\lib\dns\include;..\..\..\lib\irs\win32\include;..\..\..\lib\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\delve.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/bin/delve/win32/delve.vcxproj.user b/bin/delve/win32/delve.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
index 4686a44d1a993fe6cae084f0916d11e62e172c41..7987858d1b44b897249ee581d70ace06ad396d9e 100644 (file)
@@ -39,7 +39,6 @@ options {
                except-from { "goodcname.example.net";
                              "gooddname.example.net"; };
        allow-query {!10.53.0.8; any; };
-       sit-secret "9be998f9e2f1550e549fbec072727dc6";
        request-sit yes;
        nosit-udp-size 512;
 };
index 9a365c57abf9210a1978332a2ad60a9ed7df32e8..200bdf3bf5e019464130a4d4791fd81b2813fb54 100644 (file)
@@ -135,6 +135,7 @@ const FileData installFiles[] =
        {"libisccc.dll", FileData::BinDir, FileData::Critical, FALSE, TRUE},
        {"libdns.dll", FileData::BinDir, FileData::Critical, FALSE, TRUE},
        {"liblwres.dll", FileData::BinDir, FileData::Critical, FALSE, TRUE},
+       {"libirs.dll", FileData::BinDir, FileData::Critical, FALSE, TRUE},
 #ifdef OPENSSL
        {"libeay32.dll", FileData::BinDir, FileData::Critical, FALSE, TRUE},
 #endif
@@ -164,6 +165,7 @@ const FileData installFiles[] =
        {"dig.exe", FileData::BinDir, FileData::Normal, FALSE, TRUE},
        {"host.exe", FileData::BinDir, FileData::Normal, FALSE, TRUE},
        {"nslookup.exe", FileData::BinDir, FileData::Normal, FALSE, TRUE},
+       {"delve.exe", FileData::BinDir, FileData::Normal, FALSE, TRUE},
        {"arpaname.exe", FileData::BinDir, FileData::Normal, FALSE, TRUE},
        {"nsec3hash.exe", FileData::BinDir, FileData::Normal, FALSE, FALSE},
        {"genrandom.exe", FileData::BinDir, FileData::Normal, FALSE, FALSE},
index 4e86c9d2ab5dc61d700e6f44864d03869fd69954..dd0f71b1076120a55dc67142bfeeef7b2331859b 100644 (file)
@@ -185,9 +185,6 @@ int sigwait(const unsigned int *set, int *sig);
    MSVC and with C++ compilers. */
 #undef FLEXIBLE_ARRAY_MEMBER
 
-/* Define to 1 if you have the `AES_encrypt' function. */
-#undef HAVE_AES_ENCRYPT
-
 /* Define to 1 if you have the `chroot' function. */
 #undef HAVE_CHROOT
 
@@ -320,9 +317,15 @@ int sigwait(const unsigned int *set, int *sig);
 /* Define to 1 if you have the <net/route.h> header file. */
 #undef HAVE_NET_ROUTE_H
 
+/* Define if your OpenSSL version supports AES */
+#undef HAVE_OPENSSL_AES
+
 /* Define if your OpenSSL version supports ECDSA. */
 #undef HAVE_OPENSSL_ECDSA
 
+/* Define if your OpenSSL version supports EVP AES */
+#undef HAVE_OPENSSL_EVP_AES
+
 /* Define if your OpenSSL version supports GOST. */
 #undef HAVE_OPENSSL_GOST
 
index 97f3fd40da730ba7369bf46167582d87b00a0450..643b7f98c868dda89c0d14296134e12c3c3e2f4e 100644 (file)
@@ -294,12 +294,6 @@ typedef __int64 off_t;
  */
 @HAVE_LIBXML2@
 
-/*
- * Define when building BIND9.  When building exportable versions
- * of libisc, libdns, etc, this must be removed.
- */
-#define BIND9 1
-
 /** define if struct addrinfo exists */
 #define HAVE_ADDRINFO
 
@@ -309,6 +303,15 @@ typedef __int64 off_t;
 /** define if gai_strerror() exists */
 #define HAVE_GAISTRERROR
 
+/* return type of gai_strerror */
+#define IRS_GAISTRERROR_RETURN_T char *
+
+/* Define to the buffer length type used by getnameinfo(3). */
+#define IRS_GETNAMEINFO_BUFLEN_T DWORD
+
+/* Define to the flags type used by getnameinfo(3). */
+#define IRS_GETNAMEINFO_FLAGS_T int
+
 /* Define to enable the "filter-aaaa-on-v4" and "filter-aaaa-on-v6" options.
    */
 @ALLOW_FILTER_AAAA@
@@ -343,6 +346,21 @@ typedef __int64 off_t;
 /* Define if GOST private keys are encoded in ASN.1. */
 @PREFER_GOSTASN1@
 
+/* Define if your OpenSSL version supports EVP AES */
+@HAVE_OPENSSL_EVP_AES@
+
+/* Define if your OpenSSL version supports AES */
+@HAVE_OPENSSL_AES@
+
+/* Use AES for Source Identity Token generation */
+@AES_SIT@
+
+/* Use HMAC-SHA1 for Source Identity Token generation */
+@HMAC_SHA1_SIT@
+
+/* Use HMAC-SHA256 for Source Identity Token generation */
+@HMAC_SHA256_SIT@
+
 /* Define to 1 if you have the `readline' function. */
 @HAVE_READLINE@
 
@@ -370,6 +388,17 @@ typedef __int64 off_t;
 /* Large system tuning */
 @TUNE_LARGE@
 
+/*
+ * Define to nothing if C supports flexible array members, and to 1 if it does
+ * not. That way, with a declaration like `struct s { int n; double
+ * d[FLEXIBLE_ARRAY_MEMBER]; };', the struct hack can be used with pre-C99
+ * compilers. When computing the size of such an object, don't use 'sizeof
+ * (struct s)' as it overestimates the size. Use 'offsetof (struct s, d)'
+ * instead. Don't use 'offsetof (struct s, d[0])', as this doesn't work with
+ * MSVC and with C++ compilers.
+ */
+#define FLEXIBLE_ARRAY_MEMBER /**/
+
 /* Avoid warnings with strlen() */
 #ifdef _WIN64
 #define strlen(x)      (unsigned int) strlen(x)
index 54c1c7c2626c5afa5801bb933fe5b50a15b2c1a6..926e7c3658762d8c446fd978e79d6382c75d1c97 100755 (executable)
--- a/configure
+++ b/configure
@@ -700,8 +700,6 @@ XSLTPROC
 W3M
 PDFLATEX
 LATEX
-HAVE_SIT
-ISC_PLATFORM_USESIT
 ISC_ARCH_DIR
 ISC_PLATFORM_USEMACASM
 ISC_PLATFORM_USESTDASM
@@ -818,8 +816,8 @@ PKCS11_TOOLS
 USE_PKCS11
 ISC_OPENSSL_LIBS
 ISC_OPENSSL_INC
-ISC_PLATFORM_OPENSSLAES
 ISC_PLATFORM_OPENSSLHASH
+ISC_PLATFORM_WANTAES
 OPENSSL_GOST
 OPENSSL_ECDSA
 OPENSSLLINKSRCS
@@ -827,6 +825,8 @@ OPENSSLLINKOBJS
 OPENSSLGOSTLINKSRCS
 OPENSSLGOSTLINKOBJS
 DST_OPENSSL_INC
+HAVE_SIT
+ISC_PLATFORM_USESIT
 ISC_THREAD_DIR
 THREADOPTSRCS
 THREADOPTOBJS
@@ -984,10 +984,11 @@ with_openssl
 with_pkcs11
 with_ecdsa
 with_gost
-enable_openssl_version_check
+with_aes
 enable_openssl_hash
-enable_openssl_aes
+enable_sit
 with_sit_alg
+enable_openssl_version_check
 with_libxml2
 with_libjson
 enable_largefile
@@ -1007,7 +1008,6 @@ enable_fixed_rrset
 enable_rpz_nsip
 enable_rpz_nsdname
 enable_filter_aaaa
-enable_sit
 with_docbook_xsl
 with_idn
 with_libiconv
@@ -1658,10 +1658,10 @@ Optional Features:
   --enable-devpoll        use /dev/poll when available [default=yes]
   --enable-threads        enable multithreading
   --enable-native-pkcs11  use native PKCS11 for all crypto [default=no]
+  --enable-openssl-hash   use OpenSSL for hash functions [default=no]
+  --enable-sit            enable source identity token [default=no]
   --enable-openssl-version-check
                           check OpenSSL version [default=yes]
-  --enable-openssl-hash   use OpenSSL for hash functions [default=no]
-  --enable-openssl-aes    use OpenSSL for aes [default=no]
   --enable-largefile     64-bit file support
   --enable-backtrace      log stack backtrace on abort [default=yes]
   --enable-symtable       use internal symbol table for backtrace
@@ -1677,7 +1677,6 @@ Optional Features:
   --disable-rpz-nsip     disable rpz-nsip rules [default=enabled]
   --disable-rpz-nsdname          disable rpz-nsdname rules [default=enabled]
   --enable-filter-aaaa    enable filtering of AAAA records [default=no]
-  --enable-sit            enable source identity token [default=no]
   --enable-full-report   report values of all configure options
 
 Optional Packages:
@@ -1699,6 +1698,7 @@ Optional Packages:
                          (PATH is for the PKCS11 provider)
   --with-ecdsa            Crypto ECDSA
   --with-gost             Crypto GOST yes|no|raw|asn1.
+  --with-aes              Crypto AES
   --with-sit-alg=ALG      choose the algorithm for SIT [aes|sha1|sha256]
   --with-libxml2=PATH     build with libxml2 library yes|no|path
   --with-libjson=PATH     build with libjson0 library yes|no|path
@@ -15057,6 +15057,8 @@ fi
 ISC_THREAD_DIR=$thread_dir
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libtool" >&5
+$as_echo_n "checking for libtool... " >&6; }
 
 # Check whether --with-libtool was given.
 if test "${with_libtool+set}" = set; then :
@@ -15068,6 +15070,8 @@ fi
 
 case $use_libtool in
        yes)
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
                O=lo
                A=la
@@ -15084,6 +15088,8 @@ case $use_libtool in
                esac;
                ;;
        *)
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
                O=o
                A=a
                LIBTOOL=
@@ -15112,9 +15118,6 @@ fi
 #
 # was --with-openssl specified?
 #
-OPENSSL_WARNING=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library" >&5
-$as_echo_n "checking for OpenSSL library... " >&6; }
 
 # Check whether --with-openssl was given.
 if test "${with_openssl+set}" = set; then :
@@ -15136,6 +15139,122 @@ else
 fi
 
 
+#
+# were --with-ecdsa, --with-gost, --with-aes specified
+#
+
+# Check whether --with-ecdsa was given.
+if test "${with_ecdsa+set}" = set; then :
+  withval=$with_ecdsa; with_ecdsa="$withval"
+else
+  with_ecdsa="auto"
+fi
+
+
+# Check whether --with-gost was given.
+if test "${with_gost+set}" = set; then :
+  withval=$with_gost; with_gost="$withval"
+else
+  with_gost="auto"
+fi
+
+
+# Check whether --with-aes was given.
+if test "${with_aes+set}" = set; then :
+  withval=$with_aes; with_aes="$withval"
+else
+  with_aes="checksit"
+fi
+
+
+#
+# was --enable-openssl-hash specified?
+#
+# Check whether --enable-openssl-hash was given.
+if test "${enable_openssl_hash+set}" = set; then :
+  enableval=$enable_openssl_hash; want_openssl_hash="$enableval"
+else
+  want_openssl_hash="checksit"
+fi
+
+
+#
+# Enable Source Identity Token support
+#
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Source Identity Token support" >&5
+$as_echo_n "checking for Source Identity Token support... " >&6; }
+# Check whether --enable-sit was given.
+if test "${enable_sit+set}" = set; then :
+  enableval=$enable_sit; enable_sit="$enableval"
+else
+  enable_sit="no"
+fi
+
+HAVE_SIT=
+ISC_PLATFORM_USESIT="#undef ISC_PLATFORM_USESIT"
+
+case "$enable_sit" in
+yes)
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+       ISC_PLATFORM_USESIT="#define ISC_PLATFORM_USESIT 1"
+       HAVE_SIT=1
+       ;;
+no)
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+       ;;
+*)
+       as_fn_error $? "\"enable-sit requires yes or no\"" "$LINENO" 5
+       ;;
+esac
+
+
+
+#
+# Source Identity Token algorithm choice
+#
+
+# Check whether --with-sit-alg was given.
+if test "${with_sit_alg+set}" = set; then :
+  withval=$with_sit_alg; with_sit_alg="$withval"
+else
+  with_sit_alg="auto"
+fi
+
+
+if test "$enable_sit" = "yes"
+then
+       case $with_sit_alg in
+               *1)
+                       with_sit_alg="sha1"
+                       ;;
+               *2*)
+                       with_sit_alg="sha256"
+                       ;;
+               auto)
+                       if test "$with_aes" != "no"
+                       then
+                               with_aes="yes"
+                       fi
+                       ;;
+               *)
+                       with_sit_alg="aes"
+                       if test "$with_aes" != "no"
+                       then
+                               with_aes="yes"
+                       fi
+                       ;;
+       esac
+fi
+if test "with_aes" = "checksit"
+then
+       with_aes="no"
+fi
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL library" >&5
+$as_echo_n "checking for OpenSSL library... " >&6; }
+OPENSSL_WARNING=
 openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
 if test "$use_openssl" = "auto"
 then
@@ -15155,22 +15274,6 @@ then
 fi
 OPENSSL_ECDSA=""
 OPENSSL_GOST=""
-
-# Check whether --with-ecdsa was given.
-if test "${with_ecdsa+set}" = set; then :
-  withval=$with_ecdsa; with_ecdsa="$withval"
-else
-  with_ecdsa="auto"
-fi
-
-
-# Check whether --with-gost was given.
-if test "${with_gost+set}" = set; then :
-  withval=$with_gost; with_gost="$withval"
-else
-  with_gost="auto"
-fi
-
 gosttype="raw"
 case "$with_gost" in
        raw)
@@ -15195,7 +15298,7 @@ case "$use_openssl" in
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled because of native PKCS11" >&5
 $as_echo "disabled because of native PKCS11" >&6; }
                DST_OPENSSL_INC=""
-               CRYPTO=""
+               CRYPTO="-DPKCS11CRYPTO"
                OPENSSLGOSTLINKOBJS=""
                OPENSSLGOSTLINKSRS=""
                OPENSSLLINKOBJS=""
@@ -15453,7 +15556,6 @@ else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#include <stdio.h>
 #include <openssl/ecdsa.h>
 #include <openssl/objects.h>
 int main() {
@@ -15592,6 +15694,75 @@ $as_echo "#define HAVE_OPENSSL_GOST 1" >>confdefs.h
        *)
                ;;
        esac
+
+       have_aes="no"
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL AES support" >&5
+$as_echo_n "checking for OpenSSL AES support... " >&6; }
+       if test "$cross_compiling" = yes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using --with-aes" >&5
+$as_echo "using --with-aes" >&6; }
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#include <openssl/evp.h>
+int main() {
+       EVP_CIPHER *aes128, *aes192, *aes256;
+
+       aes128 = EVP_aes_128_ecb();
+       aes192 = EVP_aes_192_ecb();
+       aes256 = EVP_aes_256_ecb();
+       if (aes128 == NULL || aes192 == NULL || aes256 == NULL)
+               return (1);
+       return (0);
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        have_aes="evp"
+else
+  ac_fn_c_check_func "$LINENO" "AES_encrypt" "ac_cv_func_AES_encrypt"
+if test "x$ac_cv_func_AES_encrypt" = xyes; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        have_aes="yes"
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+
+       ISC_OPENSSL_INC=""
+       ISC_OPENSSL_LIBS=""
+       if test "$with_aes" = "yes"
+       then
+               case "$have_aes" in
+               evp)
+
+$as_echo "#define HAVE_OPENSSL_EVP_AES 1" >>confdefs.h
+
+                       ISC_OPENSSL_INC="$DST_OPENSSL_INC"
+                       ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
+                       ;;
+               yes)
+
+$as_echo "#define HAVE_OPENSSL_AES 1" >>confdefs.h
+
+                       ISC_OPENSSL_INC="$DST_OPENSSL_INC"
+                       ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
+                       ;;
+               *)
+                       ;;
+               esac
+       fi
+
        CC="$saved_cc"
        CFLAGS="$saved_cflags"
        LIBS="$saved_libs"
 
 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DST_OPENSSL_LIBS"
 
-#
-# Use OpenSSL for hash functions and/or aes
-#
-
-saved_libs="$LIBS"
-LIBS="$LIBS $DNS_CRYPTO_LIBS"
-for ac_func in AES_encrypt
-do :
-  ac_fn_c_check_func "$LINENO" "AES_encrypt" "ac_cv_func_AES_encrypt"
-if test "x$ac_cv_func_AES_encrypt" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_AES_ENCRYPT 1
-_ACEOF
-
-fi
-done
-
-LIBS="$saved_libs"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for using OpenSSL for hash functions" >&5
-$as_echo_n "checking for using OpenSSL for hash functions... " >&6; }
-# Check whether --enable-openssl-hash was given.
-if test "${enable_openssl_hash+set}" = set; then :
-  enableval=$enable_openssl_hash; want_openssl_hash="$enableval"
-else
-  want_openssl_hash="no"
+ISC_PLATFORM_WANTAES="#undef ISC_PLATFORM_WANTAES"
+if test "$with_aes" = "yes"
+then
+       if test "X$CRYPTO" = "X"
+       then
+               with_aes="no"
+       fi
 fi
-
-
-# Check whether --enable-openssl-aes was given.
-if test "${enable_openssl_aes+set}" = set; then :
-  enableval=$enable_openssl_aes; want_openssl_aes="$enableval"
-else
-  want_openssl_aes="no"
+if test "$with_aes" = "yes"
+then
+       ISC_PLATFORM_WANTAES="#define ISC_PLATFORM_WANTAES 1"
 fi
 
 
 #
-# Source Identity Token algorithm choice
+# Choose SIT algorithm
 #
 
-# Check whether --with-sit-alg was given.
-if test "${with_sit_alg+set}" = set; then :
-  withval=$with_sit_alg; with_sit_alg="$withval"
-else
-  with_sit_alg="auto"
+if test "$enable_sit" = "yes"
+then
+       { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the Algorithm for SIT" >&5
+$as_echo_n "checking for the Algorithm for SIT... " >&6; }
+       if test "$with_sit_alg" = "auto"
+       then
+               if test "$with_aes" = "yes"
+               then
+                       with_sit_alg="aes"
+               else
+                       with_sit_alg="sha256"
+               fi
+       fi
 fi
-
-
 case $with_sit_alg in
-       *1)
-               with_sit_alg="sha1"
-               want_openssl_hash="yes"
-
-$as_echo "#define HMAC_SHA1_SIT 1" >>confdefs.h
-
-               ;;
-       *2*)
-               with_sit_alg="sha256"
-               want_openssl_hash="yes"
-
-$as_echo "#define HMAC_SHA256_SIT 1" >>confdefs.h
-
-               ;;
-       auto)
-               if test "$ac_cv_func_AES_encrypt" = "yes"
+       sha1)
+               if test "$enable_sit" != "yes"
                then
-                       with_sit_alg="aes"
-                       if test "$CRYPTO" = "-DOPENSSL"
+                       as_fn_error $? "\"with-sit-alg requires enable-sit\"" "$LINENO" 5;
+               fi
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: sha1" >&5
+$as_echo "sha1" >&6; }
+               if test "$CRYPTO" = "-DOPENSSL"
+               then
+                       if test "$want_openssl_hash" = "checksit"
                        then
-                               want_openssl_aes="yes"
+                               want_openssl_hash="yes"
                        fi
+               fi
 
-$as_echo "#define AES_SIT 1" >>confdefs.h
+$as_echo "#define HMAC_SHA1_SIT 1" >>confdefs.h
 
-               else
-                       with_sit_alg="sha256"
-                       if test "$CRYPTO" = "-DOPENSSL"
+               ;;
+       sha256)
+               if test "$enable_sit" != "yes"
+               then
+                       as_fn_error $? "\"with-sit-alg requires enable-sit\"" "$LINENO" 5;
+               fi
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: sha256" >&5
+$as_echo "sha256" >&6; }
+               if test "$CRYPTO" = "-DOPENSSL"
+               then
+                       if test "$want_openssl_hash" = "checksit"
                        then
                                want_openssl_hash="yes"
                        fi
+               fi
 
 $as_echo "#define HMAC_SHA256_SIT 1" >>confdefs.h
 
-               fi
                ;;
-       *)
-               with_sit_alg="aes"
-               want_openssl_aes="yes"
+       aes)
+               if test "$enable_sit" != "yes"
+               then
+                       as_fn_error $? "\"with-sit-alg requires enable-sit\"" "$LINENO" 5;
+               fi
+               { $as_echo "$as_me:${as_lineno-$LINENO}: result: aes" >&5
+$as_echo "aes" >&6; }
+               if test "$with_aes" != "yes"
+               then
+                       as_fn_error $? "\"SIT wants to use unavailable AES\"" "$LINENO" 5;
+               fi
 
 $as_echo "#define AES_SIT 1" >>confdefs.h
 
                ;;
 esac
+if test "$want_openssl_hash" = "checksit"
+then
+       want_openssl_hash="no"
+fi
+
+#
+# Use OpenSSL for hash functions
+#
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for using OpenSSL for hash functions" >&5
+$as_echo_n "checking for using OpenSSL for hash functions... " >&6; }
+ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
 case $want_openssl_hash in
        yes)
-               if test "$CRYPTO" = ""
+               if test "$CRYPTO" != "-DOPENSSL"
                then
                        as_fn_error $? "No OpenSSL for hash functions" "$LINENO" 5
                fi
@@ -15726,30 +15899,12 @@ $as_echo "yes" >&6; }
        no)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-               ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
-               ISC_OPENSSL_INC=""
-               ISC_OPENSSL_LIBS=""
-               ;;
-esac
-case $want_openssl_aes in
-       yes)
-               if test "$CRYPTO" = ""
-               then
-                       as_fn_error $? "No OpenSSL for AES" "$LINENO" 5
-               fi
-               ISC_PLATFORM_OPENSSLAES="#define ISC_PLATFORM_OPENSSLAES 1"
-               ISC_OPENSSL_INC="$DST_OPENSSL_INC"
-               ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
-               ;;
-       no)
-               ISC_PLATFORM_OPENSSLAES="#undef ISC_PLATFORM_OPENSSLAES"
                ;;
 esac
 
 
 
 
-
 #
 # PKCS11 (aka crypto hardware) support (--with moved just after openssl)
 #
@@ -15786,7 +15941,7 @@ $as_echo "yes" >&6; }
                if ! $use_threads; then
                        as_fn_error $? "PKCS11 requires thread support" "$LINENO" 5
                fi
-               if test "$CRYPTO" != ""
+               if test "$CRYPTO" = "-DOPENSSL"
                then
                        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL with PKCS11 support" >&5
 $as_echo_n "checking for OpenSSL with PKCS11 support... " >&6; }
@@ -15900,7 +16055,6 @@ case "$want_native_pkcs11" in
        yes)
                { $as_echo "$as_me:${as_lineno-$LINENO}: result: using native PKCS11 crypto" >&5
 $as_echo "using native PKCS11 crypto" >&6; }
-               CRYPTO="-DPKCS11CRYPTO"
                PKCS11LINKOBJS='${PKCS11LINKOBJS}'
                PKCS11LINKSRCS='${PKCS11LINKSRCS}'
                PKCS11_TEST=pkcs11
@@ -19048,34 +19202,6 @@ $as_echo "#define ALLOW_FILTER_AAAA 1" >>confdefs.h
                ;;
 esac
 
-#
-# Enable Source Identity Token support
-#
-# Check whether --enable-sit was given.
-if test "${enable_sit+set}" = set; then :
-  enableval=$enable_sit; enable_sit="$enableval"
-else
-  enable_sit="no"
-fi
-
-
-ISC_PLATFORM_USESIT="#undef ISC_PLATFORM_USESIT"
-HAVE_SIT=
-
-case "$enable_sit" in
-yes)
-       ISC_PLATFORM_USESIT="#define ISC_PLATFORM_USESIT 1"
-        HAVE_SIT=1
-       ;;
-no)
-       ;;
-*)
-       as_fn_error $? "\"enable-sit requires yes or no\"" "$LINENO" 5
-       ;;
-esac
-
-
-
 #
 #  The following sets up how non-blocking i/o is established.
 #  Sunos, cygwin and solaris 2.x (x<5) require special handling.
@@ -19902,7 +20028,7 @@ $as_echo "using large-system tuning" >&6; }
 $as_echo "using default tuning" >&6; }
                ;;
        yes|*)
-                as_fn_error $? "You must specify \"large\" or \"default\" for --with-tuning." "$LINENO" 5
+               as_fn_error $? "You must specify \"large\" or \"default\" for --with-tuning." "$LINENO" 5
                ;;
 esac
 
@@ -23596,7 +23722,7 @@ test "$use_gssapi" = "no" || echo "    GSS-API (--with-gssapi)"
 if test "$enable_sit" != "no"; then
     echo "    Source Identity Token support (--enable-sit)"
     if test "$enable_full_report" = "yes" -o "$with_sit_alg" != "aes"; then
-        echo "        Algorithm: $with_sit_alg"
+       echo "        Algorithm: $with_sit_alg"
     fi
 fi
 
index e5a030d7f06752091b95214c1ecdf40d79b5c232..8b5c7f060c797fd2229f225fd7e008a38314834c 100644 (file)
@@ -1103,12 +1103,14 @@ AC_SUBST(THREADOPTSRCS)
 ISC_THREAD_DIR=$thread_dir
 AC_SUBST(ISC_THREAD_DIR)
 
+AC_MSG_CHECKING(for libtool)
 AC_ARG_WITH(libtool,
            [  --with-libtool          use GNU libtool],
            use_libtool="$withval", use_libtool="no")
 
 case $use_libtool in
        yes)
+               AC_MSG_RESULT(yes)
                AM_PROG_LIBTOOL
                O=lo
                A=la
@@ -1125,6 +1127,7 @@ case $use_libtool in
                esac;
                ;;
        *)
+               AC_MSG_RESULT(no)
                O=o
                A=a
                LIBTOOL=
@@ -1149,8 +1152,6 @@ AC_ARG_ENABLE(native-pkcs11,
 #
 # was --with-openssl specified?
 #
-OPENSSL_WARNING=
-AC_MSG_CHECKING(for OpenSSL library)
 AC_ARG_WITH(openssl,
 [  --with-openssl[=PATH]     Build with OpenSSL [yes|no|path].
                          (Crypto is required for DNSSEC)],
@@ -1164,6 +1165,87 @@ AC_ARG_WITH(pkcs11,
                          (PATH is for the PKCS11 provider)],
    use_pkcs11="$withval", use_pkcs11="auto")
 
+#
+# were --with-ecdsa, --with-gost, --with-aes specified
+#
+AC_ARG_WITH(ecdsa, [  --with-ecdsa            Crypto ECDSA],
+           with_ecdsa="$withval", with_ecdsa="auto")
+AC_ARG_WITH(gost, [  --with-gost             Crypto GOST [yes|no|raw|asn1].],
+           with_gost="$withval", with_gost="auto")
+AC_ARG_WITH(aes, [  --with-aes              Crypto AES],
+           with_aes="$withval", with_aes="checksit")
+
+#
+# was --enable-openssl-hash specified?
+#
+AC_ARG_ENABLE(openssl-hash,
+       [  --enable-openssl-hash   use OpenSSL for hash functions [[default=no]]],
+       want_openssl_hash="$enableval", want_openssl_hash="checksit")
+
+#
+# Enable Source Identity Token support
+#
+AC_MSG_CHECKING(for Source Identity Token support)
+AC_ARG_ENABLE(sit,
+       [  --enable-sit            enable source identity token [[default=no]]],
+       enable_sit="$enableval", enable_sit="no")
+HAVE_SIT=
+ISC_PLATFORM_USESIT="#undef ISC_PLATFORM_USESIT"
+
+case "$enable_sit" in
+yes)
+       AC_MSG_RESULT(yes)
+       ISC_PLATFORM_USESIT="#define ISC_PLATFORM_USESIT 1"
+       HAVE_SIT=1
+       ;;
+no)
+       AC_MSG_RESULT(no)
+       ;;
+*)
+       AC_MSG_ERROR("enable-sit requires yes or no")
+       ;;
+esac
+AC_SUBST(ISC_PLATFORM_USESIT)
+AC_SUBST(HAVE_SIT)
+
+#
+# Source Identity Token algorithm choice
+#
+AC_ARG_WITH(sit-alg,
+       [  --with-sit-alg=ALG      choose the algorithm for SIT [[aes|sha1|sha256]]],
+       with_sit_alg="$withval", with_sit_alg="auto")
+
+if test "$enable_sit" = "yes"
+then
+       case $with_sit_alg in
+               *1)
+                       with_sit_alg="sha1"
+                       ;;
+               *2*)
+                       with_sit_alg="sha256"
+                       ;;
+               auto)
+                       if test "$with_aes" != "no"
+                       then
+                               with_aes="yes"
+                       fi
+                       ;;
+               *)
+                       with_sit_alg="aes"
+                       if test "$with_aes" != "no"
+                       then
+                               with_aes="yes"
+                       fi
+                       ;;
+       esac
+fi
+if test "with_aes" = "checksit"
+then
+       with_aes="no"
+fi
+
+AC_MSG_CHECKING(for OpenSSL library)
+OPENSSL_WARNING=
 openssldirs="/usr /usr/local /usr/local/ssl /usr/pkg /usr/sfw"
 if test "$use_openssl" = "auto"
 then
@@ -1183,11 +1265,6 @@ then
 fi
 OPENSSL_ECDSA=""
 OPENSSL_GOST=""
-AC_ARG_WITH(ecdsa, [  --with-ecdsa            Crypto ECDSA],
-           with_ecdsa="$withval", with_ecdsa="auto")
-AC_ARG_WITH(gost,
-[  --with-gost             Crypto GOST [yes|no|raw|asn1].],
-           with_gost="$withval", with_gost="auto")
 gosttype="raw"
 case "$with_gost" in
        raw)
@@ -1210,7 +1287,7 @@ case "$use_openssl" in
        native_pkcs11)
                AC_MSG_RESULT(disabled because of native PKCS11)
                DST_OPENSSL_INC=""
-               CRYPTO=""
+               CRYPTO="-DPKCS11CRYPTO"
                OPENSSLGOSTLINKOBJS=""
                OPENSSLGOSTLINKSRS=""
                OPENSSLLINKOBJS=""
@@ -1380,7 +1457,6 @@ esac
        AC_MSG_CHECKING(for OpenSSL ECDSA support)
        have_ecdsa=""
        AC_TRY_RUN([
-#include <stdio.h>
 #include <openssl/ecdsa.h>
 #include <openssl/objects.h>
 int main() {
@@ -1492,6 +1568,52 @@ int main() {
        *)
                ;;
        esac
+
+       have_aes="no"
+       AC_MSG_CHECKING(for OpenSSL AES support)
+       AC_TRY_RUN([
+#include <openssl/evp.h>
+int main() {
+       EVP_CIPHER *aes128, *aes192, *aes256;
+
+       aes128 = EVP_aes_128_ecb();
+       aes192 = EVP_aes_192_ecb();
+       aes256 = EVP_aes_256_ecb();
+       if (aes128 == NULL || aes192 == NULL || aes256 == NULL)
+               return (1);
+       return (0);
+}
+],
+       [AC_MSG_RESULT(yes)
+        have_aes="evp"],
+       [AC_CHECK_FUNC(AES_encrypt,
+       [AC_MSG_RESULT(yes)
+        have_aes="yes"],
+       [AC_MSG_RESULT(no)])],
+       [AC_MSG_RESULT(using --with-aes)])
+
+       ISC_OPENSSL_INC=""
+       ISC_OPENSSL_LIBS=""
+       if test "$with_aes" = "yes"
+       then
+               case "$have_aes" in
+               evp)
+                       AC_DEFINE(HAVE_OPENSSL_EVP_AES, 1,
+                                 [Define if your OpenSSL version supports EVP AES])
+                       ISC_OPENSSL_INC="$DST_OPENSSL_INC"
+                       ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
+                       ;;
+               yes)    
+                       AC_DEFINE(HAVE_OPENSSL_AES, 1,
+                                 [Define if your OpenSSL version supports AES])
+                       ISC_OPENSSL_INC="$DST_OPENSSL_INC"
+                       ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
+                       ;;
+               *)
+                       ;;
+               esac
+       fi
+
        CC="$saved_cc"
        CFLAGS="$saved_cflags"
        LIBS="$saved_libs"
@@ -1516,75 +1638,98 @@ AC_SUBST(OPENSSL_GOST)
 
 DNS_CRYPTO_LIBS="$DNS_CRYPTO_LIBS $DST_OPENSSL_LIBS"
 
-#
-# Use OpenSSL for hash functions and/or aes
-#
-
-saved_libs="$LIBS"
-LIBS="$LIBS $DNS_CRYPTO_LIBS"
-AC_CHECK_FUNCS(AES_encrypt)
-LIBS="$saved_libs"
-
-AC_MSG_CHECKING(for using OpenSSL for hash functions)
-AC_ARG_ENABLE(openssl-hash,
-       [  --enable-openssl-hash   use OpenSSL for hash functions [[default=no]]],
-       want_openssl_hash="$enableval", want_openssl_hash="no")
-
-AC_ARG_ENABLE(openssl-aes,
-       [  --enable-openssl-aes    use OpenSSL for aes [[default=no]]],
-       want_openssl_aes="$enableval", want_openssl_aes="no")
+ISC_PLATFORM_WANTAES="#undef ISC_PLATFORM_WANTAES"
+if test "$with_aes" = "yes"
+then
+       if test "X$CRYPTO" = "X"
+       then
+               with_aes="no"
+       fi
+fi
+if test "$with_aes" = "yes"
+then
+       ISC_PLATFORM_WANTAES="#define ISC_PLATFORM_WANTAES 1"
+fi
+AC_SUBST(ISC_PLATFORM_WANTAES)
 
 #
-# Source Identity Token algorithm choice
+# Choose SIT algorithm
 #
-AC_ARG_WITH(sit-alg,
-       [  --with-sit-alg=ALG      choose the algorithm for SIT [[aes|sha1|sha256]]],
-       with_sit_alg="$withval", with_sit_alg="auto")
 
+if test "$enable_sit" = "yes"
+then
+       AC_MSG_CHECKING(for the Algorithm for SIT)
+       if test "$with_sit_alg" = "auto"
+       then
+               if test "$with_aes" = "yes"
+               then
+                       with_sit_alg="aes"
+               else
+                       with_sit_alg="sha256"
+               fi
+       fi
+fi
 case $with_sit_alg in
-       *1)
-               with_sit_alg="sha1"
-               want_openssl_hash="yes"
+       sha1)
+               if test "$enable_sit" != "yes"
+               then
+                       AC_MSG_ERROR("with-sit-alg requires enable-sit");
+               fi
+               AC_MSG_RESULT(sha1)
+               if test "$CRYPTO" = "-DOPENSSL"
+               then
+                       if test "$want_openssl_hash" = "checksit"
+                       then
+                               want_openssl_hash="yes"
+                       fi
+               fi
                AC_DEFINE(HMAC_SHA1_SIT, 1,
                          [Use HMAC-SHA1 for Source Identity Token generation])
                ;;
-       *2*)
-               with_sit_alg="sha256"
-               want_openssl_hash="yes"
-               AC_DEFINE(HMAC_SHA256_SIT, 1,
-                         [Use HMAC-SHA256 for Source Identity Token generation])
-               ;;
-       auto)
-               if test "$ac_cv_func_AES_encrypt" = "yes"
+       sha256)
+               if test "$enable_sit" != "yes"
                then
-                       with_sit_alg="aes"
-                       if test "$CRYPTO" = "-DOPENSSL"
-                       then
-                               want_openssl_aes="yes"
-                       fi
-                       AC_DEFINE(AES_SIT, 1,
-                                [Use AES for Source Identity Token generation])
-               else
-                       with_sit_alg="sha256"
-                       if test "$CRYPTO" = "-DOPENSSL"
+                       AC_MSG_ERROR("with-sit-alg requires enable-sit");
+               fi
+               AC_MSG_RESULT(sha256)
+               if test "$CRYPTO" = "-DOPENSSL"
+               then
+                       if test "$want_openssl_hash" = "checksit"
                        then
                                want_openssl_hash="yes"
                        fi
-                       AC_DEFINE(HMAC_SHA256_SIT, 1,
-                        [Use HMAC-SHA256 for Source Identity Token generation])
                fi
+               AC_DEFINE(HMAC_SHA256_SIT, 1,
+                         [Use HMAC-SHA256 for Source Identity Token generation])
                ;;
-       *)
-               with_sit_alg="aes"
-               want_openssl_aes="yes"
+       aes)
+               if test "$enable_sit" != "yes"
+               then
+                       AC_MSG_ERROR("with-sit-alg requires enable-sit");
+               fi
+               AC_MSG_RESULT(aes)
+               if test "$with_aes" != "yes"
+               then
+                       AC_MSG_ERROR("SIT wants to use unavailable AES");
+               fi
                AC_DEFINE(AES_SIT, 1,
                          [Use AES for Source Identity Token generation])
                ;;
 esac
+if test "$want_openssl_hash" = "checksit"
+then
+       want_openssl_hash="no"
+fi
+
+#
+# Use OpenSSL for hash functions
+#
 
+AC_MSG_CHECKING(for using OpenSSL for hash functions)
+ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
 case $want_openssl_hash in
        yes)
-               if test "$CRYPTO" = ""
+               if test "$CRYPTO" != "-DOPENSSL"
                then
                        AC_MSG_ERROR([No OpenSSL for hash functions])
                fi
@@ -1595,27 +1740,9 @@ case $want_openssl_hash in
                ;;
        no)
                AC_MSG_RESULT(no)
-               ISC_PLATFORM_OPENSSLHASH="#undef ISC_PLATFORM_OPENSSLHASH"
-               ISC_OPENSSL_INC=""
-               ISC_OPENSSL_LIBS=""
-               ;;
-esac
-case $want_openssl_aes in
-       yes)
-               if test "$CRYPTO" = ""
-               then
-                       AC_MSG_ERROR([No OpenSSL for AES])
-               fi
-               ISC_PLATFORM_OPENSSLAES="#define ISC_PLATFORM_OPENSSLAES 1"
-               ISC_OPENSSL_INC="$DST_OPENSSL_INC"
-               ISC_OPENSSL_LIBS="$DST_OPENSSL_LIBS"
-               ;;
-       no)
-               ISC_PLATFORM_OPENSSLAES="#undef ISC_PLATFORM_OPENSSLAES"
                ;;
 esac
 AC_SUBST(ISC_PLATFORM_OPENSSLHASH)
-AC_SUBST(ISC_PLATFORM_OPENSSLAES)
 AC_SUBST(ISC_OPENSSL_INC)
 AC_SUBST(ISC_OPENSSL_LIBS)
 
@@ -1652,7 +1779,7 @@ case "$use_pkcs11" in
                if ! $use_threads; then
                        AC_MSG_ERROR([PKCS11 requires thread support])
                fi
-               if test "$CRYPTO" != ""
+               if test "$CRYPTO" = "-DOPENSSL"
                then
                        AC_MSG_CHECKING(for OpenSSL with PKCS11 support)
                        saved_cc="$CC"
@@ -1739,7 +1866,6 @@ AC_MSG_CHECKING(for native PKCS11)
 case "$want_native_pkcs11" in
        yes)
                AC_MSG_RESULT(using native PKCS11 crypto)
-               CRYPTO="-DPKCS11CRYPTO"
                PKCS11LINKOBJS='${PKCS11LINKOBJS}'
                PKCS11LINKSRCS='${PKCS11LINKSRCS}'
                PKCS11_TEST=pkcs11
@@ -3436,30 +3562,6 @@ case "$enable_filter" in
                ;;
 esac
 
-#
-# Enable Source Identity Token support
-#
-AC_ARG_ENABLE(sit,
-       [  --enable-sit            enable source identity token [[default=no]]],
-       enable_sit="$enableval", enable_sit="no")
-
-ISC_PLATFORM_USESIT="#undef ISC_PLATFORM_USESIT"
-HAVE_SIT=
-
-case "$enable_sit" in
-yes)
-       ISC_PLATFORM_USESIT="#define ISC_PLATFORM_USESIT 1"
-        HAVE_SIT=1
-       ;;
-no)
-       ;;
-*)
-       AC_MSG_ERROR("enable-sit requires yes or no")
-       ;;
-esac
-AC_SUBST(ISC_PLATFORM_USESIT)
-AC_SUBST(HAVE_SIT)
-
 #
 #  The following sets up how non-blocking i/o is established.
 #  Sunos, cygwin and solaris 2.x (x<5) require special handling.
@@ -3757,14 +3859,14 @@ case "$use_tuning" in
                if ! $use_threads; then
                        AC_MSG_ERROR([Large-system tuning requires threads.])
                fi
-                AC_DEFINE(TUNE_LARGE, 1, [Define to use large-system tuning.])
+               AC_DEFINE(TUNE_LARGE, 1, [Define to use large-system tuning.])
                AC_MSG_RESULT(using large-system tuning)
                ;;
        no|default)
                AC_MSG_RESULT(using default tuning)
                ;;
        yes|*)
-                AC_MSG_ERROR([You must specify "large" or "default" for --with-tuning.])
+               AC_MSG_ERROR([You must specify "large" or "default" for --with-tuning.])
                ;;
 esac
 
@@ -4324,7 +4426,7 @@ test "$use_gssapi" = "no" || echo "    GSS-API (--with-gssapi)"
 if test "$enable_sit" != "no"; then
     echo "    Source Identity Token support (--enable-sit)"
     if test "$enable_full_report" = "yes" -o "$with_sit_alg" != "aes"; then
-        echo "        Algorithm: $with_sit_alg"
+       echo "        Algorithm: $with_sit_alg"
     fi
 fi
 
index f37f6f36c00033699f9d1b7e8bc2e44740186c7e..3db8b93210d72b2d4bb9aa27c85220b206d415a5 100644 (file)
@@ -3051,7 +3051,9 @@ dns_client_updaterec(dns_client_updateop_t op, dns_name_t *owner,
                dns_rdatalist_init(&updaterec->rdatalist);
                dns_rdata_init(&updaterec->rdata);
                isc_buffer_init(&updaterec->buffer, updaterec->data,
-                               size - offsetof(dns_client_updaterec_t, data));
+                               (unsigned int)
+                               (size -
+                                offsetof(dns_client_updaterec_t, data)));
                dns_name_copy(owner, target, &updaterec->buffer);
                if (source != NULL) {
                        isc_region_t r;
index 6a1306d53b9614d054e432e6b2d6536a067f92c1..1c9adee2c4bc097796d0bb8ca2f8034aeb08edca 100644 (file)
@@ -75,9 +75,7 @@ dns_lib_initmsgcat(void) {
 
 static isc_once_t init_once = ISC_ONCE_INIT;
 static isc_mem_t *dns_g_mctx = NULL;
-#ifndef WIN32
 static dns_dbimplementation_t *dbimp = NULL;
-#endif
 static isc_boolean_t initialize_done = ISC_FALSE;
 static isc_mutex_t reflock;
 static unsigned int references = 0;
@@ -92,11 +90,9 @@ initialize(void) {
        if (result != ISC_R_SUCCESS)
                return;
        dns_result_register();
-#ifndef WIN32
        result = dns_ecdb_register(dns_g_mctx, &dbimp);
        if (result != ISC_R_SUCCESS)
                goto cleanup_mctx;
-#endif
        result = isc_hash_create(dns_g_mctx, NULL, DNS_NAME_MAXWIRE);
        if (result != ISC_R_SUCCESS)
                goto cleanup_db;
@@ -117,11 +113,9 @@ initialize(void) {
   cleanup_hash:
        isc_hash_destroy();
   cleanup_db:
-#ifndef WIN32
        if (dbimp != NULL)
                dns_ecdb_unregister(&dbimp);
   cleanup_mctx:
-#endif
        if (dns_g_mctx != NULL)
                isc_mem_detach(&dns_g_mctx);
 }
@@ -163,10 +157,8 @@ dns_lib_shutdown(void) {
 
        dst_lib_destroy();
        isc_hash_destroy();
-#ifndef WIN32
        if (dbimp != NULL)
                dns_ecdb_unregister(&dbimp);
-#endif
        if (dns_g_mctx != NULL)
                isc_mem_detach(&dns_g_mctx);
 }
index 0996235891153cbf5e1b46b979d0d6ddeb970bb1..799e4dcabc10dd7bd6a306a39bb546d6dd867ffe 100644 (file)
@@ -77,6 +77,27 @@ dns_cache_setfilename
 dns_cache_updatestats
 dns_cert_fromtext
 dns_cert_totext
+dns_client_addtrustedkey
+dns_client_cancelrequest
+dns_client_cancelresolve
+dns_client_cancelupdate
+dns_client_clearservers
+dns_client_create
+dns_client_createx
+dns_client_createx2
+dns_client_destroy
+dns_client_destroyreqtrans
+dns_client_destroyrestrans
+dns_client_destroyupdatetrans
+dns_client_freeresanswer
+dns_client_request
+dns_client_resolve
+dns_client_setdlv
+dns_client_setservers
+dns_client_startrequest
+dns_client_startresolve
+dns_client_startupdate
+dns_client_update
 dns_clientinfo_init
 dns_clientinfomethods_init
 dns_compress_add
@@ -242,6 +263,8 @@ dns_dnsseckey_destroy
 dns_ds_buildrdata
 dns_dsdigest_fromtext
 dns_dumpctx_detach
+dns_ecdb_register
+dns_ecdb_unregister
 dns_fwdtable_add
 dns_fwdtable_addfwd
 dns_fwdtable_create
@@ -299,7 +322,9 @@ dns_keytable_findnextkeynode
 dns_keytable_issecuredomain
 dns_keytable_marksecure
 dns_keytable_nextkeynode
+dns_lib_init
 dns_lib_initmsgcat
+dns_lib_shutdown
 dns_loadctx_attach
 dns_loadctx_cancel
 dns_loadctx_detach
@@ -752,6 +777,10 @@ dns_tkey_processgssresponse
 dns_tkey_processquery
 dns_tkeyctx_create
 dns_tkeyctx_destroy
+dns_tsec_create
+dns_tsec_destroy
+dns_tsec_getkey
+dns_tsec_gettype
 dns_tsig_sign
 dns_tsig_verify
 dns_tsigkey_attach
index 9ab1265c253ad694075ab6d282640857da832ca0..f7e5a6b98ae18805dacbd673ee640f339573812e 100644 (file)
@@ -130,6 +130,10 @@ SOURCE=..\include\dns\cert.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\dns\client.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\dns\clientinfo.h
 # End Source File
 # Begin Source File
@@ -178,6 +182,10 @@ SOURCE=..\include\dns\ds.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\dns\ecdb.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\dns\enumclass.h
 # End Source File
 # Begin Source File
@@ -404,6 +412,10 @@ SOURCE=..\include\dns\tkey.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\dns\tsec.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\dns\tsig.h
 # End Source File
 # Begin Source File
@@ -480,6 +492,10 @@ SOURCE=..\callbacks.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\client.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\clientinfo.c
 # End Source File
 # Begin Source File
@@ -528,6 +544,10 @@ SOURCE=..\ds.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\ecdb.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\forward.c
 # End Source File
 @IF GEOIP
@@ -714,6 +734,10 @@ SOURCE=..\tkey.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\tsec.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\tsig.c
 # End Source File
 # Begin Source File
index 31d714d38e945b5b78819eddc9bdd7ef158a17f8..9b96feb07aa07d9d3b2e597fc2924c37a1782936 100644 (file)
@@ -126,6 +126,7 @@ CLEAN :
        -@erase "$(INTDIR)\byaddr.obj"
        -@erase "$(INTDIR)\cache.obj"
        -@erase "$(INTDIR)\callbacks.obj"
+       -@erase "$(INTDIR)\client.obj"
        -@erase "$(INTDIR)\clientinfo.obj"
        -@erase "$(INTDIR)\compress.obj"
        -@erase "$(INTDIR)\db.obj"
@@ -142,6 +143,7 @@ CLEAN :
        -@erase "$(INTDIR)\dst_lib.obj"
        -@erase "$(INTDIR)\dst_parse.obj"
        -@erase "$(INTDIR)\dst_result.obj"
+       -@erase "$(INTDIR)\ecdb.obj"
        -@erase "$(INTDIR)\forward.obj"
 @IF GEOIP
        -@erase "$(INTDIR)\geoip.obj"
@@ -209,6 +211,7 @@ CLEAN :
        -@erase "$(INTDIR)\time.obj"
        -@erase "$(INTDIR)\timer.obj"
        -@erase "$(INTDIR)\tkey.obj"
+       -@erase "$(INTDIR)\tsec.obj"
        -@erase "$(INTDIR)\tsig.obj"
        -@erase "$(INTDIR)\ttl.obj"
        -@erase "$(INTDIR)\update.obj"
@@ -280,6 +283,7 @@ LINK32_OBJS= \
        "$(INTDIR)\byaddr.obj" \
        "$(INTDIR)\cache.obj" \
        "$(INTDIR)\callbacks.obj" \
+       "$(INTDIR)\client.obj" \
        "$(INTDIR)\clientinfo.obj" \
        "$(INTDIR)\compress.obj" \
        "$(INTDIR)\db.obj" \
@@ -292,6 +296,7 @@ LINK32_OBJS= \
        "$(INTDIR)\dns64.obj" \
        "$(INTDIR)\dnssec.obj" \
        "$(INTDIR)\ds.obj" \
+       "$(INTDIR)\ecdb.obj" \
        "$(INTDIR)\forward.obj" \
 @IF GEOIP
        "$(INTDIR)\geoip.obj" \
@@ -340,6 +345,7 @@ LINK32_OBJS= \
        "$(INTDIR)\time.obj" \
        "$(INTDIR)\timer.obj" \
        "$(INTDIR)\tkey.obj" \
+       "$(INTDIR)\tsec.obj" \
        "$(INTDIR)\tsig.obj" \
        "$(INTDIR)\ttl.obj" \
        "$(INTDIR)\update.obj" \
@@ -418,6 +424,8 @@ CLEAN :
        -@erase "$(INTDIR)\cache.sbr"
        -@erase "$(INTDIR)\callbacks.obj"
        -@erase "$(INTDIR)\callbacks.sbr"
+       -@erase "$(INTDIR)\client.obj"
+       -@erase "$(INTDIR)\client.sbr"
        -@erase "$(INTDIR)\clientinfo.obj"
        -@erase "$(INTDIR)\clientinfo.sbr"
        -@erase "$(INTDIR)\compress.obj"
@@ -450,6 +458,8 @@ CLEAN :
        -@erase "$(INTDIR)\dst_parse.sbr"
        -@erase "$(INTDIR)\dst_result.obj"
        -@erase "$(INTDIR)\dst_result.sbr"
+       -@erase "$(INTDIR)\ecdb.obj"
+       -@erase "$(INTDIR)\ecdb.sbr"
        -@erase "$(INTDIR)\forward.obj"
        -@erase "$(INTDIR)\forward.sbr"
 @IF GEOIP
@@ -582,6 +592,8 @@ CLEAN :
        -@erase "$(INTDIR)\timer.sbr"
        -@erase "$(INTDIR)\tkey.obj"
        -@erase "$(INTDIR)\tkey.sbr"
+       -@erase "$(INTDIR)\tsec.obj"
+       -@erase "$(INTDIR)\tsec.sbr"
        -@erase "$(INTDIR)\tsig.obj"
        -@erase "$(INTDIR)\tsig.sbr"
        -@erase "$(INTDIR)\ttl.obj"
@@ -661,6 +673,7 @@ BSC32_SBRS= \
        "$(INTDIR)\byaddr.sbr" \
        "$(INTDIR)\cache.sbr" \
        "$(INTDIR)\callbacks.sbr" \
+       "$(INTDIR)\client.sbr" \
        "$(INTDIR)\clientinfo.sbr" \
        "$(INTDIR)\compress.sbr" \
        "$(INTDIR)\db.sbr" \
@@ -673,6 +686,7 @@ BSC32_SBRS= \
        "$(INTDIR)\dns64.sbr" \
        "$(INTDIR)\dnssec.sbr" \
        "$(INTDIR)\ds.sbr" \
+       "$(INTDIR)\ecdb.sbr" \
        "$(INTDIR)\forward.sbr" \
 @IF GEOIP
        "$(INTDIR)\geoip.sbr" \
@@ -721,6 +735,7 @@ BSC32_SBRS= \
        "$(INTDIR)\time.sbr" \
        "$(INTDIR)\timer.sbr" \
        "$(INTDIR)\tkey.sbr" \
+       "$(INTDIR)\tsec.sbr" \
        "$(INTDIR)\tsig.sbr" \
        "$(INTDIR)\ttl.sbr" \
        "$(INTDIR)\update.sbr" \
@@ -773,6 +788,7 @@ LINK32_OBJS= \
        "$(INTDIR)\byaddr.obj" \
        "$(INTDIR)\cache.obj" \
        "$(INTDIR)\callbacks.obj" \
+       "$(INTDIR)\client.obj" \
        "$(INTDIR)\clientinfo.obj" \
        "$(INTDIR)\compress.obj" \
        "$(INTDIR)\db.obj" \
@@ -785,6 +801,7 @@ LINK32_OBJS= \
        "$(INTDIR)\dns64.obj" \
        "$(INTDIR)\dnssec.obj" \
        "$(INTDIR)\ds.obj" \
+       "$(INTDIR)\ecdb.obj" \
        "$(INTDIR)\forward.obj" \
 @IF GEOIP
        "$(INTDIR)\geoip.obj" \
@@ -833,6 +850,7 @@ LINK32_OBJS= \
        "$(INTDIR)\time.obj" \
        "$(INTDIR)\timer.obj" \
        "$(INTDIR)\tkey.obj" \
+       "$(INTDIR)\tsec.obj" \
        "$(INTDIR)\tsig.obj" \
        "$(INTDIR)\ttl.obj" \
        "$(INTDIR)\update.obj" \
@@ -995,6 +1013,24 @@ SOURCE=..\callbacks.c
        $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ENDIF 
+
+SOURCE=..\client.c
+
+!IF  "$(CFG)" == "libdns - @PLATFORM@ Release"
+
+
+"$(INTDIR)\client.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libdns - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\client.obj" "$(INTDIR)\client.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 !ENDIF 
 
 SOURCE=..\clientinfo.c
@@ -1213,6 +1249,24 @@ SOURCE=..\ds.c
        $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ENDIF 
+
+SOURCE=..\ecdb.c
+
+!IF  "$(CFG)" == "libdns - @PLATFORM@ Release"
+
+
+"$(INTDIR)\ecdb.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libdns - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\ecdb.obj"   "$(INTDIR)\ecdb.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 !ENDIF 
 
 SOURCE=..\forward.c
@@ -2045,6 +2099,24 @@ SOURCE=..\tkey.c
        $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ENDIF 
+
+SOURCE=..\tsec.c
+
+!IF  "$(CFG)" == "libdns - @PLATFORM@ Release"
+
+
+"$(INTDIR)\tsec.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libdns - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\tsec.obj"   "$(INTDIR)\tsec.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 !ENDIF 
 
 SOURCE=..\tsig.c
index 0032264d13a513a616660dc3cd2c4c9cc9d2c616..7a065da44c7f66bb8496437ca41229c190b5429b 100644 (file)
@@ -48,6 +48,9 @@
     <ClCompile Include="..\callbacks.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\client.c">\r
+      <Filter>Library Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="..\clientinfo.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
@@ -81,6 +84,9 @@
     <ClCompile Include="..\ds.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\ecdb.c">\r
+      <Filter>Library Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="..\forward.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
     <ClCompile Include="..\tkey.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\tsec.c">\r
+      <Filter>Library Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="..\tsig.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
     <ClInclude Include="..\include\dns\cert.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\include\dns\client.h">\r
+      <Filter>Library Header Files</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="..\include\dns\clientinfo.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
     <ClInclude Include="..\include\dns\dsdigest.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\include\dns\ecdb.h">\r
+      <Filter>Library Header Files</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="..\include\dns\enumclass.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
     <ClInclude Include="..\include\dns\tkey.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\include\dns\tsec.h">\r
+      <Filter>Library Header Files</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="..\include\dns\tsig.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
index 3e95116b211c65ee8288806b7c9c98bf6aeda7ba..f402d7466b4f026a92df5411f7128fa6c635ed78 100644 (file)
     <ClCompile Include="..\byaddr.c" />\r
     <ClCompile Include="..\cache.c" />\r
     <ClCompile Include="..\callbacks.c" />\r
+    <ClCompile Include="..\client.c" />\r
     <ClCompile Include="..\clientinfo.c" />\r
     <ClCompile Include="..\compress.c" />\r
     <ClCompile Include="..\db.c" />\r
     <ClCompile Include="..\dst_lib.c" />\r
     <ClCompile Include="..\dst_parse.c" />\r
     <ClCompile Include="..\dst_result.c" />\r
+    <ClCompile Include="..\ecdb.c" />\r
     <ClCompile Include="..\forward.c" />\r
 @IF GEOIP\r
     <ClCompile Include="..\geoip.c" />\r
     <ClCompile Include="..\time.c" />\r
     <ClCompile Include="..\timer.c" />\r
     <ClCompile Include="..\tkey.c" />\r
+    <ClCompile Include="..\tsec.c" />\r
     <ClCompile Include="..\tsig.c" />\r
     <ClCompile Include="..\ttl.c" />\r
     <ClCompile Include="..\update.c" />\r
     <ClInclude Include="..\include\dns\cache.h" />\r
     <ClInclude Include="..\include\dns\callbacks.h" />\r
     <ClInclude Include="..\include\dns\cert.h" />\r
+    <ClInclude Include="..\include\dns\client.h" />\r
     <ClInclude Include="..\include\dns\clientinfo.h" />\r
     <ClInclude Include="..\include\dns\compress.h" />\r
     <ClInclude Include="..\include\dns\db.h" />\r
     <ClInclude Include="..\include\dns\dnssec.h" />\r
     <ClInclude Include="..\include\dns\ds.h" />\r
     <ClInclude Include="..\include\dns\dsdigest.h" />\r
+    <ClInclude Include="..\include\dns\ecdb.h" />\r
     <ClInclude Include="..\include\dns\enumclass.h" />\r
     <ClInclude Include="..\include\dns\enumtype.h" />\r
     <ClInclude Include="..\include\dns\events.h" />\r
     <ClInclude Include="..\include\dns\time.h" />\r
     <ClInclude Include="..\include\dns\timer.h" />\r
     <ClInclude Include="..\include\dns\tkey.h" />\r
+    <ClInclude Include="..\include\dns\tsec.h" />\r
     <ClInclude Include="..\include\dns\tsig.h" />\r
     <ClInclude Include="..\include\dns\ttl.h" />\r
     <ClInclude Include="..\include\dns\types.h" />\r
index 2fe394161963f2b93ede471452d099f5419eda32..40e29940c7a7d3d7340d3a350e4c39965d7806ed 100644 (file)
@@ -51,6 +51,8 @@
  */
 #include <config.h>
 
+#include <isc/net.h>
+
 #include <irs/netdb.h>
 
 /*% Text of error messages. */
index 24d35bf691d9d1a7383ce0d92455666d12d6e2ce..a02705fdf31fc64a6c96bf7a3f0ebb5f46be15c0 100644 (file)
@@ -453,7 +453,8 @@ getaddrinfo(const char *hostname, const char *servname,
                                        SIN6(ai->ai_addr)->sin6_scope_id =
                                                scopeid;
 #endif
-                               if (getnameinfo(ai->ai_addr, ai->ai_addrlen,
+                               if (getnameinfo(ai->ai_addr,
+                                               (socklen_t)ai->ai_addrlen,
                                                nbuf, sizeof(nbuf), NULL, 0,
                                                NI_NUMERICHOST) == 0) {
                                        ai->ai_canonname = strdup(nbuf);
@@ -541,7 +542,7 @@ make_resstate(isc_mem_t *mctx, gai_statehead_t *head, const char *hostname,
        gai_resstate_t *state;
        dns_fixedname_t fixeddomain;
        dns_name_t *qdomain;
-       size_t namelen;
+       unsigned int namelen;
        isc_buffer_t b;
        isc_boolean_t need_v4 = ISC_FALSE;
        isc_boolean_t need_v6 = ISC_FALSE;
index cb2400795549eb6dd8eb83481bb8e9ae9c093ad2..6b7085e469bbecb9c9e4545c00d468ab88c42790 100644 (file)
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
+#include <netdb.h>
+#endif
 
 #include <ctype.h>
 #include <errno.h>
-#include <netdb.h>
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -57,6 +59,7 @@
 #include <isc/sockaddr.h>
 #include <isc/util.h>
 
+#include <irs/netdb.h>
 #include <irs/resconf.h>
 
 #define IRS_RESCONF_MAGIC              ISC_MAGIC('R', 'E', 'S', 'c')
@@ -237,7 +240,7 @@ add_server(isc_mem_t *mctx, const char *address_str,
                result = ISC_R_RANGE;
                goto cleanup;
        }
-       address->length = res->ai_addrlen;
+       address->length = (unsigned int)res->ai_addrlen;
        memmove(&address->type.ss, res->ai_addr, res->ai_addrlen);
        ISC_LINK_INIT(address, link);
        ISC_LIST_APPEND(*nameservers, address, link);
diff --git a/lib/irs/win32/DLLMain.c b/lib/irs/win32/DLLMain.c
new file mode 100644 (file)
index 0000000..902bf5c
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id$ */
+
+#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/irs/win32/Makefile.in b/lib/irs/win32/Makefile.in
new file mode 100644 (file)
index 0000000..08e54c5
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id$
+
+srcdir =       @srcdir@
+VPATH =                @srcdir@
+top_srcdir =   @top_srcdir@
+
+SUBDIRS =      include
+TARGETS =
+
+@BIND9_MAKE_RULES@
diff --git a/lib/irs/win32/include/Makefile.in b/lib/irs/win32/include/Makefile.in
new file mode 100644 (file)
index 0000000..39abdc4
--- /dev/null
@@ -0,0 +1,24 @@
+# Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id$
+
+srcdir =       @srcdir@
+VPATH =                @srcdir@
+top_srcdir =   @top_srcdir@
+
+SUBDIRS =      irs
+TARGETS =
+
+@BIND9_MAKE_RULES@
diff --git a/lib/irs/win32/include/irs/Makefile.in b/lib/irs/win32/include/irs/Makefile.in
new file mode 100644 (file)
index 0000000..645d800
--- /dev/null
@@ -0,0 +1,33 @@
+# Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+# AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+# OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+
+# $Id$
+
+srcdir =       @srcdir@
+VPATH =                @srcdir@
+top_srcdir =   @top_srcdir@
+
+HEADERS =
+SUBDIRS =
+TARGETS =
+
+@BIND9_MAKE_RULES@
+
+installdirs:
+       $(SHELL) ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir}/irs
+
+install:: installdirs
+       for i in ${HEADERS}; do \
+               ${INSTALL_DATA} ${srcdir}/$$i ${DESTDIR}${includedir}/irs ; \
+       done
diff --git a/lib/irs/win32/libirs.def b/lib/irs/win32/libirs.def
new file mode 100644 (file)
index 0000000..2cae3b0
--- /dev/null
@@ -0,0 +1,13 @@
+LIBRARY libirs
+
+; Exported Functions
+EXPORTS
+irs_freeaddrinfo
+irs_gai_strerror
+irs_getaddrinfo
+irs_getnameinfo
+irs_resconf_destroy
+irs_resconf_getnameservers
+irs_resconf_getndots
+irs_resconf_getsearchlist
+irs_resconf_load
diff --git a/lib/irs/win32/libirs.dsp.in b/lib/irs/win32/libirs.dsp.in
new file mode 100644 (file)
index 0000000..3f6d1a7
--- /dev/null
@@ -0,0 +1,169 @@
+# Microsoft Developer Studio Project File - Name="libirs" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Dynamic-Link Library" 0x0102
+
+CFG=libirs - @PLATFORM@ Release
+!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 "libirs.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 "libirs.mak" CFG="libirs - @PLATFORM@ Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libirs - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Dynamic-Link Library")
+!MESSAGE "libirs - @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)" == "libirs - @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 "libirs_EXPORTS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 @LIBXML2_INC@ @OPENSSL_INC@ @GEOIP_INC@ /I "./" /I "../../../" /I "include" /I "../include" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "NDEBUG" /D "WIN32" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBIRS_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 ../../isc/win32/Release/libisc.lib  ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /dll @MACHINE@ /out:"../../../Build/Release/libirs.dll"
+
+!ELSEIF  "$(CFG)" == "libirs - @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 "libirs_EXPORTS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od @LIBXML2_INC@ @OPENSSL_INC@ @GEOIP_INC@ /I "./" /I "../../../" /I "include" /I "../include" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBIRS_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 ../../isc/win32/debug/libisc.lib ../../dns/win32/debug/libdns.lib ../../isccfg/win32/debug/libisccfg.lib /nologo /dll /debug @MACHINE@ /out:"../../../Build/Debug/libirs.dll" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "libirs - @PLATFORM@ Release"
+# Name "libirs - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=..\context.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\DLLMain.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\dnsconf.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=..\getnameinfo.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\resconf.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\irs\context.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\dnsconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\netdb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\platform.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\resconf.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\types.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\include\irs\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=.\libirs.def
+# End Source File
+# End Target
+# End Project
diff --git a/lib/irs/win32/libirs.dsw b/lib/irs/win32/libirs.dsw
new file mode 100644 (file)
index 0000000..16fbe95
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "libirs"=.\libirs.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/irs/win32/libirs.mak.in b/lib/irs/win32/libirs.mak.in
new file mode 100644 (file)
index 0000000..4894057
--- /dev/null
@@ -0,0 +1,548 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on libirs.dsp
+!IF "$(CFG)" == ""
+CFG=libirs - @PLATFORM@ Release
+!MESSAGE No configuration specified. Defaulting to libirs - @PLATFORM@ Release.
+!ENDIF 
+
+!IF "$(CFG)" != "libirs - @PLATFORM@ Release" && "$(CFG)" != "libirs - @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 "libirs.mak" CFG="libirs - @PLATFORM@ Release"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "libirs - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Dynamic-Link Library")
+!MESSAGE "libirs - @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)" == "libirs - @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)" == "libirs - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "..\..\..\Build\Release\libirs.dll"
+
+!ELSE 
+
+ALL : "libisccfg - @PLATFORM@ Release" "libisc - @PLATFORM@ Release" "libdns - @PLATFORM@ Release" "..\..\..\Build\Release\libirs.dll"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libdns - @PLATFORM@ ReleaseCLEAN" "libisc - @PLATFORM@ ReleaseCLEAN" "libisccfg - @PLATFORM@ ReleaseCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+       -@erase "$(INTDIR)\context.obj"
+       -@erase "$(INTDIR)\DLLMain.obj"
+       -@erase "$(INTDIR)\dnsconf.obj"
+       -@erase "$(INTDIR)\gai_strerror.obj"
+       -@erase "$(INTDIR)\getaddrinfo.obj"
+       -@erase "$(INTDIR)\getnameinfo.obj"
+       -@erase "$(INTDIR)\resconf.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\version.obj"
+       -@erase "$(OUTDIR)\libirs.exp"
+       -@erase "$(OUTDIR)\libirs.lib"
+       -@erase "..\..\..\Build\Release\libirs.dll"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 @LIBXML2_INC@ @OPENSSL_INC@ @GEOIP_INC@ /I "./" /I "../../../" /I "include" /I "../include" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "NDEBUG" /D "WIN32" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBIRS_EXPORTS" /Fp"$(INTDIR)\libirs.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libirs.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib  ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\libirs.pdb" @MACHINE@ /def:".\libirs.def" /out:"../../../Build/Release/libirs.dll" /implib:"$(OUTDIR)\libirs.lib" 
+DEF_FILE= \
+       ".\libirs.def"
+LINK32_OBJS= \
+       "$(INTDIR)\context.obj" \
+       "$(INTDIR)\DLLMain.obj" \
+       "$(INTDIR)\dnsconf.obj" \
+       "$(INTDIR)\gai_strerror.obj" \
+       "$(INTDIR)\getaddrinfo.obj" \
+       "$(INTDIR)\getnameinfo.obj" \
+       "$(INTDIR)\resconf.obj" \
+       "$(INTDIR)\version.obj" \
+       "..\..\dns\win32\Release\libdns.lib" \
+       "..\..\isc\win32\Release\libisc.lib" \
+       "..\..\isccfg\win32\Release\libisccfg.lib"
+
+"..\..\..\Build\Release\libirs.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+  $(_VC_MANIFEST_EMBED_DLL)
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+!IF "$(RECURSE)" == "0" 
+
+ALL : "..\..\..\Build\Debug\libirs.dll" "$(OUTDIR)\libirs.bsc"
+
+!ELSE 
+
+ALL : "libisccfg - @PLATFORM@ Debug" "libisc - @PLATFORM@ Debug" "libdns - @PLATFORM@ Debug" "..\..\..\Build\Debug\libirs.dll" "$(OUTDIR)\libirs.bsc"
+
+!ENDIF 
+
+!IF "$(RECURSE)" == "1" 
+CLEAN :"libdns - @PLATFORM@ DebugCLEAN" "libisc - @PLATFORM@ DebugCLEAN" "libisccfg - @PLATFORM@ DebugCLEAN" 
+!ELSE 
+CLEAN :
+!ENDIF 
+       -@erase "$(INTDIR)\context.obj"
+       -@erase "$(INTDIR)\context.sbr"
+       -@erase "$(INTDIR)\DLLMain.obj"
+       -@erase "$(INTDIR)\DLLMain.sbr"
+       -@erase "$(INTDIR)\dnsconf.obj"
+       -@erase "$(INTDIR)\dnsconf.sbr"
+       -@erase "$(INTDIR)\gai_strerror.obj"
+       -@erase "$(INTDIR)\gai_strerror.sbr"
+       -@erase "$(INTDIR)\getaddrinfo.obj"
+       -@erase "$(INTDIR)\getaddrinfo.sbr"
+       -@erase "$(INTDIR)\getnameinfo.obj"
+       -@erase "$(INTDIR)\getnameinfo.sbr"
+       -@erase "$(INTDIR)\resconf.obj"
+       -@erase "$(INTDIR)\resconf.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(INTDIR)\version.obj"
+       -@erase "$(INTDIR)\version.sbr"
+       -@erase "$(OUTDIR)\libirs.bsc"
+       -@erase "$(OUTDIR)\libirs.exp"
+       -@erase "$(OUTDIR)\libirs.lib"
+       -@erase "$(OUTDIR)\libirs.pdb"
+       -@erase "..\..\..\Build\Debug\libirs.dll"
+       -@erase "..\..\..\Build\Debug\libirs.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od @LIBXML2_INC@ @OPENSSL_INC@ @GEOIP_INC@ /I "./" /I "../../../" /I "include" /I "../include" /I "../../../lib/isc/win32" /I "../../../lib/isc/win32/include" /I "../../../lib/isccfg/include" /I "../../../lib/dns/include" /I "../../../lib/isc/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "USE_MD5" @CRYPTO@ /D "LIBIRS_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\libirs.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\libirs.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\context.sbr" \
+       "$(INTDIR)\DLLMain.sbr" \
+       "$(INTDIR)\dnsconf.sbr" \
+       "$(INTDIR)\gai_strerror.sbr" \
+       "$(INTDIR)\getaddrinfo.sbr" \
+       "$(INTDIR)\getnameinfo.sbr" \
+       "$(INTDIR)\resconf.sbr" \
+       "$(INTDIR)\version.sbr"
+
+"$(OUTDIR)\libirs.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/debug/libisc.lib ../../dns/win32/debug/libdns.lib ../../isccfg/win32/debug/libisccfg.lib /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\libirs.pdb" /debug @MACHINE@ /def:".\libirs.def" /out:"../../../Build/Debug/libirs.dll" /implib:"$(OUTDIR)\libirs.lib" /pdbtype:sept 
+DEF_FILE= \
+       ".\libirs.def"
+LINK32_OBJS= \
+       "$(INTDIR)\context.obj" \
+       "$(INTDIR)\DLLMain.obj" \
+       "$(INTDIR)\dnsconf.obj" \
+       "$(INTDIR)\gai_strerror.obj" \
+       "$(INTDIR)\getaddrinfo.obj" \
+       "$(INTDIR)\getnameinfo.obj" \
+       "$(INTDIR)\resconf.obj" \
+       "$(INTDIR)\version.obj" \
+       "..\..\dns\win32\Debug\libdns.lib" \
+       "..\..\isc\win32\Debug\libisc.lib" \
+       "..\..\isccfg\win32\Debug\libisccfg.lib"
+
+"..\..\..\Build\Debug\libirs.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("libirs.dep")
+!INCLUDE "libirs.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "libirs.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "libirs - @PLATFORM@ Release" || "$(CFG)" == "libirs - @PLATFORM@ Debug"
+SOURCE=..\context.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\context.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\context.obj"        "$(INTDIR)\context.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=.\DLLMain.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\DLLMain.obj" : $(SOURCE) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\DLLMain.obj"        "$(INTDIR)\DLLMain.sbr" : $(SOURCE) "$(INTDIR)"
+
+
+!ENDIF 
+
+SOURCE=..\dnsconf.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\dnsconf.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\dnsconf.obj"        "$(INTDIR)\dnsconf.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\gai_strerror.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\gai_strerror.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\gai_strerror.obj"   "$(INTDIR)\gai_strerror.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\getaddrinfo.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\getaddrinfo.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\getaddrinfo.obj"    "$(INTDIR)\getaddrinfo.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\getnameinfo.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\getnameinfo.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\getnameinfo.obj"    "$(INTDIR)\getnameinfo.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=..\resconf.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\resconf.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\resconf.obj"        "$(INTDIR)\resconf.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ENDIF 
+
+SOURCE=.\version.c
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+
+"$(INTDIR)\version.obj" : $(SOURCE) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\version.obj"        "$(INTDIR)\version.sbr" : $(SOURCE) "$(INTDIR)"
+
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+"libdns - @PLATFORM@ Release" : 
+   cd "..\..\dns\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libdns.mak" CFG="libdns - @PLATFORM@ Release" 
+   cd "..\..\irs\win32"
+
+"libdns - @PLATFORM@ ReleaseCLEAN" : 
+   cd "..\..\dns\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libdns.mak" CFG="libdns - @PLATFORM@ Release" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+"libdns - @PLATFORM@ Debug" : 
+   cd "..\..\dns\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libdns.mak" CFG="libdns - @PLATFORM@ Debug" 
+   cd "..\..\irs\win32"
+
+"libdns - @PLATFORM@ DebugCLEAN" : 
+   cd "..\..\dns\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libdns.mak" CFG="libdns - @PLATFORM@ Debug" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+"libisc - @PLATFORM@ Release" : 
+   cd "..\..\isc\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Release" 
+   cd "..\..\irs\win32"
+
+"libisc - @PLATFORM@ ReleaseCLEAN" : 
+   cd "..\..\isc\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Release" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+"libisc - @PLATFORM@ Debug" : 
+   cd "..\..\isc\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Debug" 
+   cd "..\..\irs\win32"
+
+"libisc - @PLATFORM@ DebugCLEAN" : 
+   cd "..\..\isc\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Debug" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!ENDIF 
+
+!IF  "$(CFG)" == "libirs - @PLATFORM@ Release"
+
+"libisccfg - @PLATFORM@ Release" : 
+   cd "..\..\isccfg\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisccfg.mak" CFG="libisccfg - @PLATFORM@ Release" 
+   cd "..\..\irs\win32"
+
+"libisccfg - @PLATFORM@ ReleaseCLEAN" : 
+   cd "..\..\isccfg\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisccfg.mak" CFG="libisccfg - @PLATFORM@ Release" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!ELSEIF  "$(CFG)" == "libirs - @PLATFORM@ Debug"
+
+"libisccfg - @PLATFORM@ Debug" : 
+   cd "..\..\isccfg\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisccfg.mak" CFG="libisccfg - @PLATFORM@ Debug" 
+   cd "..\..\irs\win32"
+
+"libisccfg - @PLATFORM@ DebugCLEAN" : 
+   cd "..\..\isccfg\win32"
+   $(MAKE) /$(MAKEFLAGS) /F ".\libisccfg.mak" CFG="libisccfg - @PLATFORM@ Debug" RECURSE=1 CLEAN 
+   cd "..\..\irs\win32"
+
+!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/irs/win32/libirs.vcxproj.filters.in b/lib/irs/win32/libirs.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..5ce7a2b
--- /dev/null
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <None Include="libirs.def" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="DLLMain.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="version.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\context.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\dnsconf.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\gai_strerror.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\getaddrinfo.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\getnameinfo.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\resconf.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="..\include\irs\context.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\include\irs\dnsconf.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\include\irs\netdb.h.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\include\irs\platform.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\include\irs\resconf.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+    <ClInclude Include="..\include\irs\types.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/irs/win32/libirs.vcxproj.in b/lib/irs/win32/libirs.vcxproj.in
new file mode 100644 (file)
index 0000000..2740bcd
--- /dev/null
@@ -0,0 +1,130 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>libirs</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;USE_MD5;@CRYPTO@_DEBUG;_WINDOWS;_USRDLL;LIBIRS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>.\;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\isccfg\include;..\..\dns\include;@LIBXML2_INC@@OPENSSL_INC@@GEOIP_INC@%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <ModuleDefinitionFile>.\libirs.def</ModuleDefinitionFile>\r
+      <ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;USE_MD5;@CRYPTO@NDEBUG;_WINDOWS;_USRDLL;LIBIRS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>.\;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\isccfg\include;..\..\dns\include;@LIBXML2_INC@@OPENSSL_INC@@GEOIP_INC@%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <ModuleDefinitionFile>.\libirs.def</ModuleDefinitionFile>\r
+      <ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <None Include="libirs.def" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\context.c" />\r
+    <ClCompile Include="..\dnsconf.c" />\r
+    <ClCompile Include="..\gai_strerror.c" />\r
+    <ClCompile Include="..\getaddrinfo.c" />\r
+    <ClCompile Include="..\getnameinfo.c" />\r
+    <ClCompile Include="..\resconf.c" />\r
+    <ClCompile Include="DLLMain.c" />\r
+    <ClCompile Include="version.c" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClInclude Include="..\include\irs\context.h" />\r
+    <ClInclude Include="..\include\irs\dnsconf.h" />\r
+    <ClInclude Include="..\include\irs\netdb.h" />\r
+    <ClInclude Include="..\include\irs\platform.h" />\r
+    <ClInclude Include="..\include\irs\resconf.h" />\r
+    <ClInclude Include="..\include\irs\types.h" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/irs/win32/libirs.vcxproj.user b/lib/irs/win32/libirs.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/irs/win32/version.c b/lib/irs/win32/version.c
new file mode 100644 (file)
index 0000000..6507e1a
--- /dev/null
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2014  Internet Systems Consortium, Inc. ("ISC")
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
+ * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
+ * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
+ * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* $Id$ */
+
+#include <versions.h>
+
+#include <irs/version.h>
+
+LIBIRS_EXTERNAL_DATA const char irs_version[] = VERSION;
+
+LIBIRS_EXTERNAL_DATA const unsigned int irs_libinterface = LIBINTERFACE;
+LIBIRS_EXTERNAL_DATA const unsigned int irs_librevision = LIBREVISION;
+LIBIRS_EXTERNAL_DATA const unsigned int irs_libage = LIBAGE;
index 4554858ad324336f9a30091e12dd8d0d12da56dc..7c594774460b80d17467c2f044b62e285ca96ed9 100644 (file)
 #include <isc/types.h>
 #include <isc/util.h>
 
-#ifdef ISC_PLATFORM_OPENSSLAES
+#if HAVE_OPENSSL_EVP_AES
 
-#ifndef EVP_AES
+#include <openssl/evp.h>
+
+void
+isc_aes128_crypt(const unsigned char *key, const unsigned char *in,
+                unsigned char *out)
+{
+       EVP_CIPHER_CTX c;
+       int len;
+
+       EVP_CIPHER_CTX_init(&c);
+       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_128_ecb(), key, NULL) == 1);
+       EVP_CIPHER_CTX_set_padding(&c, 0);
+       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
+                                       ISC_AES_BLOCK_LENGTH) == 1);
+       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
+       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
+}
+
+void
+isc_aes192_crypt(const unsigned char *key, const unsigned char *in,
+                unsigned char *out)
+{
+       EVP_CIPHER_CTX c;
+       int len;
+
+       EVP_CIPHER_CTX_init(&c);
+       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_192_ecb(), key, NULL) == 1);
+       EVP_CIPHER_CTX_set_padding(&c, 0);
+       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
+                                       ISC_AES_BLOCK_LENGTH) == 1);
+       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
+       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
+}
+
+void
+isc_aes256_crypt(const unsigned char *key, const unsigned char *in,
+                unsigned char *out)
+{
+       EVP_CIPHER_CTX c;
+       int len;
+
+       EVP_CIPHER_CTX_init(&c);
+       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_256_ecb(), key, NULL) == 1);
+       EVP_CIPHER_CTX_set_padding(&c, 0);
+       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
+                                       ISC_AES_BLOCK_LENGTH) == 1);
+       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
+       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
+}
+
+#elif HAVE_OPENSSL_AES
 
 #include <openssl/aes.h>
 
@@ -62,57 +112,83 @@ isc_aes256_crypt(const unsigned char *key, const unsigned char *in,
        RUNTIME_CHECK(AES_set_encrypt_key(key, 256, &k) == 0);
        AES_encrypt(in, out, &k);
 }
-#else
 
-#include <openssl/evp.h>
+#elif PKCS11CRYPTO
+
+#include <pk11/pk11.h>
+#include <pk11/internal.h>
+
+static CK_BBOOL truevalue = TRUE;
+static CK_BBOOL falsevalue = FALSE;
+
+static void isc_aes_crypt(const unsigned char *key, CK_ULONG keylen,
+                         const unsigned char *in, unsigned char *out);
 
 void
 isc_aes128_crypt(const unsigned char *key, const unsigned char *in,
                 unsigned char *out)
 {
-       EVP_CIPHER_CTX c;
-       int len;
-
-       EVP_CIPHER_CTX_init(&c);
-       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_128_ecb(), key, NULL) == 1);
-       EVP_CIPHER_CTX_set_padding(&c, 0);
-       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
-                                       ISC_AES_BLOCK_LENGTH) == 1);
-       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
-       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
+       isc_aes_crypt(key, ISC_AES128_KEYLENGTH, in, out);
 }
 
 void
 isc_aes192_crypt(const unsigned char *key, const unsigned char *in,
                 unsigned char *out)
 {
-       EVP_CIPHER_CTX c;
-       int len;
-
-       EVP_CIPHER_CTX_init(&c);
-       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_192_ecb(), key, NULL) == 1);
-       EVP_CIPHER_CTX_set_padding(&c, 0);
-       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
-                                       ISC_AES_BLOCK_LENGTH) == 1);
-       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
-       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
+       isc_aes_crypt(key, ISC_AES192_KEYLENGTH, in, out);
 }
 
 void
 isc_aes256_crypt(const unsigned char *key, const unsigned char *in,
                 unsigned char *out)
 {
-       EVP_CIPHER_CTX c;
-       int len;
+       isc_aes_crypt(key, ISC_AES256_KEYLENGTH, in, out);
+}
+
+static void
+isc_aes_crypt(const unsigned char *key, CK_ULONG keylen,
+             const unsigned char *in, unsigned char *out)
+{
+       CK_RV rv;
+       CK_MECHANISM mech = { CKM_AES_ECB, NULL, 0 };
+       CK_OBJECT_CLASS keyClass = CKO_SECRET_KEY;
+       CK_KEY_TYPE keyType = CKK_AES;
+       CK_ATTRIBUTE keyTemplate[] =
+       {
+               { CKA_CLASS, &keyClass, (CK_ULONG) sizeof(keyClass) },
+               { CKA_KEY_TYPE, &keyType, (CK_ULONG) sizeof(keyType) },
+               { CKA_TOKEN, &falsevalue, (CK_ULONG) sizeof(falsevalue) },
+               { CKA_PRIVATE, &falsevalue, (CK_ULONG) sizeof(falsevalue) },
+               { CKA_ENCRYPT, &truevalue, (CK_ULONG) sizeof(truevalue) },
+               { CKA_VALUE, NULL, keylen }
+       };
+       CK_ULONG blocklen;
+       CK_BYTE_PTR pData;
+       pk11_context_t ctx;
+
+       DE_CONST(key, keyTemplate[5].pValue);
+       RUNTIME_CHECK(pk11_get_session(&ctx, OP_AES, ISC_FALSE, ISC_FALSE,
+                                      NULL, 0) == ISC_R_SUCCESS);
+       ctx.object = CK_INVALID_HANDLE;
+       PK11_FATALCHECK(pkcs_C_CreateObject,
+                       (ctx.session, keyTemplate,
+                        (CK_ULONG) 6, &ctx.object));
+       INSIST(ctx.object != CK_INVALID_HANDLE);
+       PK11_FATALCHECK(pkcs_C_EncryptInit,
+                       (ctx.session, &mech, ctx.object));
+
+       DE_CONST(in, pData);
+       blocklen = (CK_ULONG) ISC_AES_BLOCK_LENGTH;
+       PK11_FATALCHECK(pkcs_C_Encrypt,
+                       (ctx.session,
+                        pData, (CK_ULONG) ISC_AES_BLOCK_LENGTH,
+                        out, &blocklen));
+       RUNTIME_CHECK(blocklen == (CK_ULONG) ISC_AES_BLOCK_LENGTH);
+
+       (void) pkcs_C_DestroyObject(ctx.session, ctx.object);
+       ctx.object = CK_INVALID_HANDLE;
+       pk11_return_session(&ctx);
 
-       EVP_CIPHER_CTX_init(&c);
-       RUNTIME_CHECK(EVP_EncryptInit(&c, EVP_aes_256_ecb(), key, NULL) == 1);
-       EVP_CIPHER_CTX_set_padding(&c, 0);
-       RUNTIME_CHECK(EVP_EncryptUpdate(&c, out, &len, in,
-                                       ISC_AES_BLOCK_LENGTH) == 1);
-       RUNTIME_CHECK(len == ISC_AES_BLOCK_LENGTH);
-       RUNTIME_CHECK(EVP_CIPHER_CTX_cleanup(&c) == 1);
 }
-#endif
 
 #endif
index 046a3c72c737288d9b54542d3f4e9737f67c4802..e8f2b31f180827497635ae99b36371b567389070 100644 (file)
@@ -57,10 +57,8 @@ isc_result_t
 isc_appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp) {
        isc_result_t result;
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__appctx_create(mctx, ctxp));
-#endif
 
        LOCK(&createlock);
 
@@ -76,11 +74,9 @@ void
 isc_appctx_destroy(isc_appctx_t **ctxp) {
        REQUIRE(ctxp != NULL && ISCAPI_APPCTX_VALID(*ctxp));
 
-#ifndef WIN32
        if (isc_bind9)
                isc__appctx_destroy(ctxp);
        else
-#endif
                (*ctxp)->methods->ctxdestroy(ctxp);
 
        ENSURE(*ctxp == NULL);
@@ -90,10 +86,8 @@ isc_result_t
 isc_app_ctxstart(isc_appctx_t *ctx) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__app_ctxstart(ctx));
-#endif
 
        return (ctx->methods->ctxstart(ctx));
 }
@@ -102,10 +96,8 @@ isc_result_t
 isc_app_ctxrun(isc_appctx_t *ctx) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__app_ctxrun(ctx));
-#endif
 
        return (ctx->methods->ctxrun(ctx));
 }
@@ -117,10 +109,8 @@ isc_app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx,
 {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__app_ctxonrun(ctx, mctx, task, action, arg));
-#endif
 
        return (ctx->methods->ctxonrun(ctx, mctx, task, action, arg));
 }
@@ -129,10 +119,8 @@ isc_result_t
 isc_app_ctxsuspend(isc_appctx_t *ctx) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__app_ctxsuspend(ctx));
-#endif
 
        return (ctx->methods->ctxsuspend(ctx));
 }
@@ -141,10 +129,8 @@ isc_result_t
 isc_app_ctxshutdown(isc_appctx_t *ctx) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                return (isc__app_ctxshutdown(ctx));
-#endif
 
        return (ctx->methods->ctxshutdown(ctx));
 }
@@ -153,10 +139,8 @@ void
 isc_app_ctxfinish(isc_appctx_t *ctx) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
 
-#ifndef WIN32
        if (isc_bind9)
                isc__app_ctxfinish(ctx);
-#endif
 
        ctx->methods->ctxfinish(ctx);
 }
@@ -166,10 +150,8 @@ isc_appctx_settaskmgr(isc_appctx_t *ctx, isc_taskmgr_t *taskmgr) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
        REQUIRE(taskmgr != NULL);
 
-#ifndef WIN32
        if (isc_bind9)
                isc__appctx_settaskmgr(ctx, taskmgr);
-#endif
 
        ctx->methods->settaskmgr(ctx, taskmgr);
 }
@@ -179,10 +161,8 @@ isc_appctx_setsocketmgr(isc_appctx_t *ctx, isc_socketmgr_t *socketmgr) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
        REQUIRE(socketmgr != NULL);
 
-#ifndef WIN32
        if (isc_bind9)
                isc__appctx_setsocketmgr(ctx, socketmgr);
-#endif
 
        ctx->methods->setsocketmgr(ctx, socketmgr);
 }
@@ -192,16 +172,12 @@ isc_appctx_settimermgr(isc_appctx_t *ctx, isc_timermgr_t *timermgr) {
        REQUIRE(ISCAPI_APPCTX_VALID(ctx));
        REQUIRE(timermgr != NULL);
 
-#ifndef WIN32
        if (isc_bind9)
                isc__appctx_settimermgr(ctx, timermgr);
-#endif
 
        ctx->methods->settimermgr(ctx, timermgr);
 }
 
-#ifndef WIN32
-
 isc_result_t
 isc_app_start() {
        if (isc_bind9)
@@ -267,5 +243,3 @@ isc_app_unblock() {
 
        isc__app_unblock();
 }
-
-#endif
index bcee74695eb88477b53dd607578dad861460ec65..9b424268e2291801e7d66e28aead8238f509de5f 100644 (file)
 #include <isc/platform.h>
 #include <isc/types.h>
 
-#ifdef ISC_PLATFORM_OPENSSLAES
-
 #define ISC_AES128_KEYLENGTH 16U
 #define ISC_AES192_KEYLENGTH 24U
 #define ISC_AES256_KEYLENGTH 32U
 #define ISC_AES_BLOCK_LENGTH 16U
 
+#ifdef ISC_PLATFORM_WANTAES
+
 ISC_LANG_BEGINDECLS
 
 void
@@ -48,6 +48,6 @@ isc_aes256_crypt(const unsigned char *key, const unsigned char *in,
 
 ISC_LANG_ENDDECLS
 
-#endif /* ISC_PLATFORM_OPENSSLAES */
+#endif /* ISC_PLATFORM_WANTAES */
 
 #endif /* ISC_AES_H */
index e1d74d6f9f58beeda1584eb51cfa063041e94e43..a30326e599aff42ec3a577d8f140136e49e4ece7 100644 (file)
 #include <isc/magic.h>
 #include <isc/result.h>
 
-#ifdef WIN32
-#define isc_app_start isc__app_start
-#define isc_app_onrun isc__app_onrun
-#define isc_app_run isc__app_run
-#define isc_app_shutdown isc__app_shutdown
-#define isc_app_reload isc__app_reload
-#define isc_app_finish isc__app_finish
-#define isc_app_block isc__app_block
-#define isc_app_unblock isc__app_unblock
-
-#endif
-
 /***
  *** Types
  ***/
index a26f12b47ab13c4bde0f0bd461a8fcff5277d990..63897178f97f23d6ff5c70de02f8630c56c10b14 100644 (file)
 @ISC_PLATFORM_OPENSSLHASH@
 
 /*
- * Define if AES must be provided by OpenSSL.
+ * Define if AES support is wanted
  */
-@ISC_PLATFORM_OPENSSLAES@
+@ISC_PLATFORM_WANTAES@
 
 /*
  * Defines for the noreturn attribute.
index 2b4de5e0870f436daccaa44c63f21b488db1eeda..535a7cb7d9538815ab1c4b0d22ca504aeec18df1 100644 (file)
@@ -69,7 +69,8 @@ typedef enum {
        OP_DIGEST = 5,
        OP_EC = 6,
        OP_GOST = 7,
-       OP_MAX = 8
+       OP_AES = 8,
+       OP_MAX = 9
 } pk11_optype_t;
 
 /*%
@@ -183,6 +184,15 @@ pkcs_C_FindObjects(CK_SESSION_HANDLE hSession, CK_OBJECT_HANDLE_PTR phObject,
 CK_RV
 pkcs_C_FindObjectsFinal(CK_SESSION_HANDLE hSession);
 
+CK_RV
+pkcs_C_EncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
+                  CK_OBJECT_HANDLE hKey);
+
+CK_RV
+pkcs_C_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
+              CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData,
+              CK_ULONG_PTR pulEncryptedDataLen);
+
 CK_RV
 pkcs_C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism);
 
index cdf930e34cd0ae986b4ed9a35c4a8942b89ea590..776388d2a4209bdd37714d6ee6d2792fbb8231b8 100644 (file)
@@ -83,8 +83,6 @@ isc_lib_initmsgcat(void) {
        }
 }
 
-#ifndef WIN32
-
 static isc_once_t              register_once = ISC_ONCE_INIT;
 
 static void
@@ -103,5 +101,3 @@ isc_lib_register() {
        RUNTIME_CHECK(isc_once_do(&register_once, do_register)
                      == ISC_R_SUCCESS);
 }
-
-#endif
index f8ea7aeda1f72b4990f3ff8a3e5f4950414f4673..7ea4353654a2433003b9b32d31dda2970d68c5a4 100644 (file)
 #include <isc/log.h>
 #include <isc/mem.h>
 #include <isc/once.h>
+#include <isc/platform.h>
 #include <isc/stdio.h>
 #include <isc/thread.h>
 #include <isc/util.h>
@@ -175,6 +176,7 @@ static pk11_token_t *best_dh_token;
 static pk11_token_t *digest_token;
 static pk11_token_t *best_ec_token;
 static pk11_token_t *best_gost_token;
+static pk11_token_t *aes_token;
 
 static isc_result_t free_all_sessions(void);
 static isc_result_t free_session_list(pk11_sessionlist_t *slist);
@@ -313,6 +315,10 @@ dst__pkcs11_init(isc_mem_t *mctx, const char *engine) {
                FATAL_ERROR(__FILE__, __LINE__, "Can't find random service");
        if (digest_token == NULL)
                FATAL_ERROR(__FILE__, __LINE__, "Can't find digest service");
+#if defined(ISC_PLATFORM_USESIT) && defined(AES_SIT)
+       if (aes_token == NULL)
+               FATAL_ERROR(__FILE__, __LINE__, "Can't find AES encrypt");
+#endif
 #endif /* PKCS11CRYPTO */
        UNLOCK(&sessionlock);
 }
@@ -342,6 +348,8 @@ dst__pkcs11_destroy(void) {
                        best_ec_token = NULL;
                if (token == best_gost_token)
                        best_gost_token = NULL;
+               if (token == aes_token)
+                       aes_token = NULL;
                pk11_mem_put(token, sizeof(*token));
                token = next;
        }
@@ -434,6 +442,9 @@ pk11_get_session(pk11_context_t *ctx, pk11_optype_t optype,
        case OP_DIGEST:
                token = digest_token;
                break;
+       case OP_AES:
+               token = aes_token;
+               break;
        case OP_ANY:
                for (token = ISC_LIST_HEAD(tokens);
                     token != NULL;
@@ -786,22 +797,30 @@ choose_slots(void) {
                /* does GOST require digest too? */
                rv = pkcs_C_GetMechanismInfo(slot, CKM_GOSTR3411, &mechInfo);
                if ((rv != CKR_OK) || ((mechInfo.flags & CKF_DIGEST) == 0))
-                       continue;
+                       goto try_aes;
                rv = pkcs_C_GetMechanismInfo(slot, CKM_GOSTR3410_KEY_PAIR_GEN,
                                             &mechInfo);
                if ((rv != CKR_OK) ||
                    ((mechInfo.flags & CKF_GENERATE_KEY_PAIR) == 0))
-                       continue;
+                       goto try_aes;
                rv = pkcs_C_GetMechanismInfo(slot,
                                             CKM_GOSTR3410_WITH_GOSTR3411,
                                             &mechInfo);
                if ((rv != CKR_OK) ||
                    ((mechInfo.flags & CKF_SIGN) == 0) ||
                    ((mechInfo.flags & CKF_VERIFY) == 0))
-                       continue;
+                       goto try_aes;
                token->operations |= 1 << OP_GOST;
                if (best_gost_token == NULL)
                        best_gost_token = token;
+
+       try_aes:
+               rv = pkcs_C_GetMechanismInfo(slot, CKM_AES_ECB, &mechInfo);
+               if ((rv != CKR_OK) || ((mechInfo.flags & CKF_ENCRYPT) == 0))
+                       continue;
+               token->operations |= 1 << OP_AES;
+               if (aes_token == NULL)
+                       aes_token = token;
        }
 
        if (slotList != NULL)
@@ -834,6 +853,9 @@ pk11_get_best_token(pk11_optype_t optype) {
        case OP_GOST:
                token = best_gost_token;
                break;
+       case OP_AES:
+               token = aes_token;
+               break;
        default:
                break;
        }
@@ -1218,6 +1240,8 @@ pk11_dump_tokens(void)
        printf("\tbest_dh_token=%p\n", best_dh_token);
        printf("\tdigest_token=%p\n", digest_token);
        printf("\tbest_ec_token=%p\n", best_ec_token);
+       printf("\tbest_gost_token=%p\n", best_gost_token);
+       printf("\taes_token=%p\n", aes_token);
 
        for (token = ISC_LIST_HEAD(tokens);
             token != NULL;
index 4cec50f9217b35e3c5e5671ea937c73ceb592137..117d1c6c7c31693c6f4e6e72f17f62a6bbb63bfb 100644 (file)
@@ -69,8 +69,6 @@ isc_socketmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx,
        return (result);
 }
 
-#ifndef WIN32
-
 isc_result_t
 isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) {
        isc_result_t result;
@@ -403,5 +401,3 @@ isc_result_t
 isc_socket_getpeername(isc_socket_t *sock, isc_sockaddr_t *addressp) {
        return (isc__socket_getpeername(sock, addressp));
 }
-
-#endif
index 997397d30db44486e517c6bc8b60bc222beccb2e..1233420b75d05cff275956adbb2f30504d6d016b 100644 (file)
@@ -26,10 +26,10 @@ top_srcdir =        @top_srcdir@
 
 @BIND9_MAKE_INCLUDES@
 
-CINCLUDES =    -I. -Iinclude ${ISC_INCLUDES}
+CINCLUDES =    -I. -Iinclude ${ISC_INCLUDES} @ISC_OPENSSL_INC@
 CDEFINES =     -DTESTS="\"${top_builddir}/lib/isc/tests/\""
 
-ISCLIBS =      ../libisc.@A@ @DNS_CRYPTO_LIBS@
+ISCLIBS =      ../libisc.@A@ @ISC_OPENSSL_LIBS@
 ISCDEPLIBS =   ../libisc.@A@
 
 LIBS =         @LIBS@ @ATFLIBS@
index 29c278e66a0a6036d893349b46c0f90a1c37b2cc..f5eb76a5e2513369334c339612e4059960854e36 100644 (file)
@@ -33,7 +33,7 @@
 #include <isc/string.h>
 #include <isc/util.h>
 
-#ifdef ISC_PLATFORM_OPENSSLAES
+#ifdef ISC_PLATFORM_WANTAES
 
 /*
  * Test data from NIST KAT
@@ -288,7 +288,7 @@ ATF_TC_BODY(untested, tc) {
  * Main
  */
 ATF_TP_ADD_TCS(tp) {
-#ifdef ISC_PLATFORM_OPENSSLAES
+#ifdef ISC_PLATFORM_WANTAES
        ATF_TP_ADD_TC(tp, isc_aes128);
        ATF_TP_ADD_TC(tp, isc_aes192);
        ATF_TP_ADD_TC(tp, isc_aes256);
index 75c6b3b6f6ced34166d8d0ad923dc3ed4f72099b..9ccb959cb5edb5ebc5240d2d847c876776fd55f3 100644 (file)
@@ -326,6 +326,44 @@ pkcs_C_FindObjectsFinal(CK_SESSION_HANDLE hSession)
        return (*sym)(hSession);
 }
 
+CK_RV
+pkcs_C_EncryptInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism,
+                  CK_OBJECT_HANDLE hKey)
+{
+       static CK_C_EncryptInit sym = NULL;
+       static void *pPK11 = NULL;
+
+       if (hPK11 == NULL)
+               return (CKR_LIBRARY_FAILED_TO_LOAD);
+       if ((sym == NULL) || (hPK11 != pPK11)) {
+               pPK11 = hPK11;
+               sym = (CK_C_EncryptInit)dlsym(hPK11, "C_EncryptInit");
+       }
+       if (sym == NULL)
+               return (CKR_SYMBOL_RESOLUTION_FAILED);
+       return (*sym)(hSession, pMechanism, hKey);
+}
+
+CK_RV
+pkcs_C_Encrypt(CK_SESSION_HANDLE hSession, CK_BYTE_PTR pData,
+              CK_ULONG ulDataLen, CK_BYTE_PTR pEncryptedData,
+              CK_ULONG_PTR pulEncryptedDataLen)
+{
+       static CK_C_Encrypt sym = NULL;
+       static void *pPK11 = NULL;
+
+       if (hPK11 == NULL)
+               return (CKR_LIBRARY_FAILED_TO_LOAD);
+       if ((sym == NULL) || (hPK11 != pPK11)) {
+               pPK11 = hPK11;
+               sym = (CK_C_Encrypt)dlsym(hPK11, "C_Encrypt");
+       }
+       if (sym == NULL)
+               return (CKR_SYMBOL_RESOLUTION_FAILED);
+       return (*sym)(hSession, pData, ulDataLen,
+                     pEncryptedData, pulEncryptedDataLen);
+}
+
 CK_RV
 pkcs_C_DigestInit(CK_SESSION_HANDLE hSession, CK_MECHANISM_PTR pMechanism) {
        static CK_C_DigestInit sym = NULL;
index 282e9b79ce7d3ecc842f8f677bc767d37b5cf544..713a9a529a86d6db911b9b06777125ff3d0d1a85 100644 (file)
@@ -30,6 +30,7 @@
 #include <isc/app.h>
 #include <isc/boolean.h>
 #include <isc/condition.h>
+#include <isc/mem.h>
 #include <isc/msgs.h>
 #include <isc/mutex.h>
 #include <isc/event.h>
 #include <isc/util.h>
 #include <isc/thread.h>
 
-static isc_eventlist_t on_run;
-static isc_mutex_t     lock;
-static isc_boolean_t   shutdown_requested = ISC_FALSE;
-static isc_boolean_t   running = ISC_FALSE;
-/*
- * We assume that 'want_shutdown' can be read and written atomically.
- */
-static isc_boolean_t   want_shutdown = ISC_FALSE;
-/*
- * We assume that 'want_reload' can be read and written atomically.
+/*%
+ * For BIND9 internal applications built with threads, we use a single app
+ * context and let multiple worker, I/O, timer threads do actual jobs.
  */
-static isc_boolean_t   want_reload = ISC_FALSE;
-
-static isc_boolean_t   blocked  = ISC_FALSE;
 
 static isc_thread_t    blockedthread;
 
+/*%
+ * The following are intended for internal use (indicated by "isc__"
+ * prefix) but are not declared as static, allowing direct access from
+ * unit tests etc.
+ */
+isc_result_t isc__app_start(void);
+isc_result_t isc__app_ctxstart(isc_appctx_t *ctx);
+isc_result_t isc__app_onrun(isc_mem_t *mctx, isc_task_t *task,
+                           isc_taskaction_t action, void *arg);
+isc_result_t isc__app_ctxrun(isc_appctx_t *ctx);
+isc_result_t isc__app_run(void);
+isc_result_t isc__app_ctxshutdown(isc_appctx_t *ctx);
+isc_result_t isc__app_shutdown(void);
+isc_result_t isc__app_reload(void);
+isc_result_t isc__app_ctxsuspend(isc_appctx_t *ctx);
+void isc__app_ctxfinish(isc_appctx_t *ctx);
+void isc__app_finish(void);
+void isc__app_block(void);
+void isc__app_unblock(void);
+isc_result_t isc__appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp);
+void isc__appctx_destroy(isc_appctx_t **ctxp);
+void isc__appctx_settaskmgr(isc_appctx_t *ctx, isc_taskmgr_t *taskmgr);
+void isc__appctx_setsocketmgr(isc_appctx_t *ctx, isc_socketmgr_t *socketmgr);
+void isc__appctx_settimermgr(isc_appctx_t *ctx, isc_timermgr_t *timermgr);
+isc_result_t isc__app_ctxonrun(isc_appctx_t *ctx, isc_mem_t *mctx,
+                              isc_task_t *task, isc_taskaction_t action,
+                              void *arg);
+
+/*
+ * The application context of this module.  This implementation actually
+ * doesn't use it. (This may change in the future).
+ */
+#define APPCTX_MAGIC           ISC_MAGIC('A', 'p', 'c', 'x')
+#define VALID_APPCTX(c)                ISC_MAGIC_VALID(c, APPCTX_MAGIC)
+
 /* Events to wait for */
 
 #define NUM_EVENTS 2
@@ -66,8 +92,61 @@ enum {
        SHUTDOWN_EVENT
 };
 
-static HANDLE hEvents[NUM_EVENTS];
-DWORD  dwWaitResult;
+typedef struct isc__appctx {
+       isc_appctx_t            common;
+       isc_mem_t               *mctx;
+       isc_eventlist_t         on_run;
+       isc_mutex_t             lock;
+       isc_boolean_t           shutdown_requested;
+       isc_boolean_t           running;
+       /*
+        * We assume that 'want_shutdown' can be read and written atomically.
+        */
+       isc_boolean_t           want_shutdown;
+       /*
+        * We assume that 'want_reload' can be read and written atomically.
+        */
+       isc_boolean_t           want_reload;
+
+       isc_boolean_t           blocked;
+
+       HANDLE                  hEvents[NUM_EVENTS];
+
+       isc_taskmgr_t           *taskmgr;
+       isc_socketmgr_t         *socketmgr;
+       isc_timermgr_t          *timermgr;
+} isc__appctx_t;
+
+static isc__appctx_t isc_g_appctx;
+
+static struct {
+       isc_appmethods_t methods;
+
+       /*%
+        * The following are defined just for avoiding unused static functions.
+        */
+       void *run, *shutdown, *start, *reload, *finish, *block, *unblock;
+} appmethods = {
+       {
+               isc__appctx_destroy,
+               isc__app_ctxstart,
+               isc__app_ctxrun,
+               isc__app_ctxsuspend,
+               isc__app_ctxshutdown,
+               isc__app_ctxfinish,
+               isc__appctx_settaskmgr,
+               isc__appctx_setsocketmgr,
+               isc__appctx_settimermgr,
+               isc__app_ctxonrun
+       },
+       (void *)isc__app_run,
+       (void *)isc__app_shutdown,
+       (void *)isc__app_start,
+       (void *)isc__app_reload,
+       (void *)isc__app_finish,
+       (void *)isc__app_block,
+       (void *)isc__app_unblock
+};
 
 /*
  * We need to remember which thread is the main thread...
@@ -75,39 +154,69 @@ DWORD  dwWaitResult;
 static isc_thread_t    main_thread;
 
 isc_result_t
-isc__app_start(void) {
+isc__app_ctxstart(isc_appctx_t *ctx0) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
        isc_result_t result;
 
+       REQUIRE(VALID_APPCTX(ctx));
+
        /*
         * Start an ISC library application.
         */
 
        main_thread = GetCurrentThread();
 
-       result = isc_mutex_init(&lock);
+       result = isc_mutex_init(&ctx->lock);
        if (result != ISC_R_SUCCESS)
                return (result);
 
+       ctx->shutdown_requested = ISC_FALSE;
+       ctx->running = ISC_FALSE;
+       ctx->want_shutdown = ISC_FALSE;
+       ctx->want_reload = ISC_FALSE;
+       ctx->blocked  = ISC_FALSE;
+
        /* Create the reload event in a non-signaled state */
-       hEvents[RELOAD_EVENT] = CreateEvent(NULL, FALSE, FALSE, NULL);
+       ctx->hEvents[RELOAD_EVENT] = CreateEvent(NULL, FALSE, FALSE, NULL);
 
        /* Create the shutdown event in a non-signaled state */
-       hEvents[SHUTDOWN_EVENT] = CreateEvent(NULL, FALSE, FALSE, NULL);
+       ctx->hEvents[SHUTDOWN_EVENT] = CreateEvent(NULL, FALSE, FALSE, NULL);
 
-       ISC_LIST_INIT(on_run);
+       ISC_LIST_INIT(ctx->on_run);
        return (ISC_R_SUCCESS);
 }
 
+isc_result_t
+isc__app_start(void) {
+       isc_g_appctx.common.impmagic = APPCTX_MAGIC;
+       isc_g_appctx.common.magic = ISCAPI_APPCTX_MAGIC;
+       isc_g_appctx.common.methods = &appmethods.methods;
+       isc_g_appctx.mctx = NULL;
+       /* The remaining members will be initialized in ctxstart() */
+
+       return (isc__app_ctxstart((isc_appctx_t *)&isc_g_appctx));
+}
+
 isc_result_t
 isc__app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
-             void *arg) {
+              void *arg)
+{
+       return (isc__app_ctxonrun((isc_appctx_t *)&isc_g_appctx, mctx,
+                                 task, action, arg));
+}
+
+isc_result_t
+isc__app_ctxonrun(isc_appctx_t *ctx0, isc_mem_t *mctx, isc_task_t *task,
+                 isc_taskaction_t action, void *arg)
+{
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
        isc_event_t *event;
        isc_task_t *cloned_task = NULL;
        isc_result_t result;
 
+       LOCK(&ctx->lock);
 
-       LOCK(&lock);
-       if (running) {
+       if (ctx->running) {
                result = ISC_R_ALREADYRUNNING;
                goto unlock;
        }
@@ -124,33 +233,41 @@ isc__app_onrun(isc_mem_t *mctx, isc_task_t *task, isc_taskaction_t action,
                goto unlock;
        }
 
-       ISC_LIST_APPEND(on_run, event, ev_link);
+       ISC_LIST_APPEND(ctx->on_run, event, ev_link);
+
        result = ISC_R_SUCCESS;
 
  unlock:
-       UNLOCK(&lock);
+       UNLOCK(&ctx->lock);
+
        return (result);
 }
 
 isc_result_t
-isc__app_run(void) {
+isc__app_ctxrun(isc_appctx_t *ctx0) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
        isc_event_t *event, *next_event;
        isc_task_t *task;
        HANDLE *pHandles = NULL;
+       DWORD  dwWaitResult;
+
+       REQUIRE(VALID_APPCTX(ctx));
 
        REQUIRE(main_thread == GetCurrentThread());
-       LOCK(&lock);
-       if (!running) {
-               running = ISC_TRUE;
+
+       LOCK(&ctx->lock);
+
+       if (!ctx->running) {
+               ctx->running = ISC_TRUE;
 
                /*
                 * Post any on-run events (in FIFO order).
                 */
-               for (event = ISC_LIST_HEAD(on_run);
+               for (event = ISC_LIST_HEAD(ctx->on_run);
                     event != NULL;
                     event = next_event) {
                        next_event = ISC_LIST_NEXT(event, ev_link);
-                       ISC_LIST_UNLINK(on_run, event, ev_link);
+                       ISC_LIST_UNLINK(ctx->on_run, event, ev_link);
                        task = event->ev_sender;
                        event->ev_sender = NULL;
                        isc_task_sendanddetach(&task, &event);
@@ -158,15 +275,15 @@ isc__app_run(void) {
 
        }
 
-       UNLOCK(&lock);
+       UNLOCK(&ctx->lock);
 
        /*
         * There is no danger if isc_app_shutdown() is called before we wait
         * for events.
         */
 
-       while (!want_shutdown) {
-               dwWaitResult = WaitForMultipleObjects(NUM_EVENTS, hEvents,
+       while (!ctx->want_shutdown) {
+               dwWaitResult = WaitForMultipleObjects(NUM_EVENTS, ctx->hEvents,
                                                      FALSE, INFINITE);
 
                /* See why we returned */
@@ -178,20 +295,21 @@ isc__app_run(void) {
                         */
                        switch (WaitSucceededIndex(dwWaitResult)) {
                        case RELOAD_EVENT:
-                               want_reload = ISC_TRUE;
+                               ctx->want_reload = ISC_TRUE;
                                break;
 
                        case SHUTDOWN_EVENT:
-                               want_shutdown = ISC_TRUE;
+                               ctx->want_shutdown = ISC_TRUE;
                                break;
                        }
                }
-               if (want_reload) {
-                       want_reload = ISC_FALSE;
+
+               if (ctx->want_reload) {
+                       ctx->want_reload = ISC_FALSE;
                        return (ISC_R_RELOAD);
                }
 
-               if (want_shutdown && blocked)
+               if (ctx->want_shutdown && ctx->blocked)
                        exit(-1);
        }
 
@@ -199,64 +317,171 @@ isc__app_run(void) {
 }
 
 isc_result_t
-isc__app_shutdown(void) {
+isc__app_run() {
+       return (isc__app_ctxrun((isc_appctx_t *)&isc_g_appctx));
+}
+
+isc_result_t
+isc__app_ctxshutdown(isc_appctx_t *ctx0) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
        isc_boolean_t want_kill = ISC_TRUE;
 
-       LOCK(&lock);
-       REQUIRE(running);
+       REQUIRE(VALID_APPCTX(ctx));
+
+       LOCK(&ctx->lock);
+
+       REQUIRE(ctx->running);
 
-       if (shutdown_requested)
+       if (ctx->shutdown_requested)
                want_kill = ISC_FALSE;          /* We're only signaling once */
        else
-               shutdown_requested = ISC_TRUE;
+               ctx->shutdown_requested = ISC_TRUE;
+
+       UNLOCK(&ctx->lock);
 
-       UNLOCK(&lock);
        if (want_kill)
-               SetEvent(hEvents[SHUTDOWN_EVENT]);
+               SetEvent(ctx->hEvents[SHUTDOWN_EVENT]);
 
        return (ISC_R_SUCCESS);
 }
 
 isc_result_t
-isc__app_reload(void) {
-       isc_boolean_t want_reload = ISC_TRUE;
+isc__app_shutdown() {
+       return (isc__app_ctxshutdown((isc_appctx_t *)&isc_g_appctx));
+}
+
+isc_result_t
+isc__app_ctxsuspend(isc_appctx_t *ctx0) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
+       isc_boolean_t want_kill = ISC_TRUE;
 
-       LOCK(&lock);
-       REQUIRE(running);
+       REQUIRE(VALID_APPCTX(ctx));
+
+       LOCK(&ctx->lock);
+
+       REQUIRE(ctx->running);
 
        /*
         * Don't send the reload signal if we're shutting down.
         */
-       if (shutdown_requested)
-               want_reload = ISC_FALSE;
+       if (ctx->shutdown_requested)
+               want_kill = ISC_FALSE;
 
-       UNLOCK(&lock);
-       if (want_reload)
-               SetEvent(hEvents[RELOAD_EVENT]);
+       UNLOCK(&ctx->lock);
+
+       if (want_kill)
+               SetEvent(ctx->hEvents[RELOAD_EVENT]);
 
        return (ISC_R_SUCCESS);
 }
 
+isc_result_t
+isc__app_reload(void) {
+       return (isc__app_ctxsuspend((isc_appctx_t *)&isc_g_appctx));
+}
+
+void
+isc__app_ctxfinish(isc_appctx_t *ctx0) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
+
+       REQUIRE(VALID_APPCTX(ctx));
+
+       DESTROYLOCK(&ctx->lock);
+}
+
 void
 isc__app_finish(void) {
-       DESTROYLOCK(&lock);
+       isc__app_ctxfinish((isc_appctx_t *)&isc_g_appctx);
 }
 
 void
 isc__app_block(void) {
-       REQUIRE(running);
-       REQUIRE(!blocked);
+       REQUIRE(isc_g_appctx.running);
+       REQUIRE(!isc_g_appctx.blocked);
 
-       blocked = ISC_TRUE;
+       isc_g_appctx.blocked = ISC_TRUE;
        blockedthread = GetCurrentThread();
 }
 
 void
 isc__app_unblock(void) {
-       REQUIRE(running);
-       REQUIRE(blocked);
-       blocked = ISC_FALSE;
+       REQUIRE(isc_g_appctx.running);
+       REQUIRE(isc_g_appctx.blocked);
+
+       isc_g_appctx.blocked = ISC_FALSE;
        REQUIRE(blockedthread == GetCurrentThread());
 }
 
+isc_result_t
+isc__appctx_create(isc_mem_t *mctx, isc_appctx_t **ctxp) {
+       isc__appctx_t *ctx;
+
+       REQUIRE(mctx != NULL);
+       REQUIRE(ctxp != NULL && *ctxp == NULL);
+
+       ctx = isc_mem_get(mctx, sizeof(*ctx));
+       if (ctx == NULL)
+               return (ISC_R_NOMEMORY);
+
+       ctx->common.impmagic = APPCTX_MAGIC;
+       ctx->common.magic = ISCAPI_APPCTX_MAGIC;
+       ctx->common.methods = &appmethods.methods;
+
+       ctx->mctx = NULL;
+       isc_mem_attach(mctx, &ctx->mctx);
+
+       ctx->taskmgr = NULL;
+       ctx->socketmgr = NULL;
+       ctx->timermgr = NULL;
+
+       *ctxp = (isc_appctx_t *)ctx;
+
+       return (ISC_R_SUCCESS);
+}
+
+void
+isc__appctx_destroy(isc_appctx_t **ctxp) {
+       isc__appctx_t *ctx;
+
+       REQUIRE(ctxp != NULL);
+       ctx = (isc__appctx_t *)*ctxp;
+       REQUIRE(VALID_APPCTX(ctx));
+
+       isc_mem_putanddetach(&ctx->mctx, ctx, sizeof(*ctx));
+
+       *ctxp = NULL;
+}
+
+void
+isc__appctx_settaskmgr(isc_appctx_t *ctx0, isc_taskmgr_t *taskmgr) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
+
+       REQUIRE(VALID_APPCTX(ctx));
+
+       ctx->taskmgr = taskmgr;
+}
+
+void
+isc__appctx_setsocketmgr(isc_appctx_t *ctx0, isc_socketmgr_t *socketmgr) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
+
+       REQUIRE(VALID_APPCTX(ctx));
+
+       ctx->socketmgr = socketmgr;
+}
+
+void
+isc__appctx_settimermgr(isc_appctx_t *ctx0, isc_timermgr_t *timermgr) {
+       isc__appctx_t *ctx = (isc__appctx_t *)ctx0;
+
+       REQUIRE(VALID_APPCTX(ctx));
+
+       ctx->timermgr = timermgr;
+}
+
+isc_result_t
+isc__app_register() {
+       return (isc_app_register(isc__appctx_create));
+}
+
 #include "../app_api.c"
index 05ef7040c4220ef40fa9cb7cc3fca3bf275cdfd3..9e56cc9336ad3f452d2c47d2e9a01b6bac2c451c 100644 (file)
  */
 @ISC_PLATFORM_OPENSSLHASH@
 
+/*
+ * Define if AES support is wanted
+ */
+@ISC_PLATFORM_WANTAES@
+
 /*
  * If the "xadd" operation is available on this architecture,
  * ISC_PLATFORM_HAVEXADD will be defined.
 @ISC_PLATFORM_NEEDSTRCASESTR@
 
 /*
- * Define to enable Source Identity Token support.
+ * Defined if we are enabling SIT (Source Identity Token).
  */
-#define ISC_PLATFORM_USESIT 1
+@ISC_PLATFORM_USESIT@
 
 /*
  * Set up a macro for importing and exporting from the DLL
index 03d2f90b3b8789bea46d7e58e7285de0ab0280fe..f631eed02580223f6486142472efbe857592d4ee 100644 (file)
@@ -12,6 +12,12 @@ getpassphrase
 @END PKCS11
 isc___socketmgr_maxudp
 isc__app_block
+isc__app_ctxfinish
+isc__app_ctxonrun
+isc__app_ctxrun
+isc__app_ctxshutdown
+isc__app_ctxstart
+isc__app_ctxsuspend
 isc__app_finish
 isc__app_onrun
 isc__app_reload
@@ -19,6 +25,11 @@ isc__app_run
 isc__app_shutdown
 isc__app_start
 isc__app_unblock
+isc__appctx_create
+isc__appctx_destroy
+isc__appctx_setsocketmgr
+isc__appctx_settaskmgr
+isc__appctx_settimermgr
 isc__backtrace_nsymbols
 isc__backtrace_symtable
 isc__buffer_activeregion
@@ -77,6 +88,7 @@ isc__socket_permunix
 isc__socket_recv
 isc__socket_recv2
 isc__socket_recvv
+isc__socket_register
 isc__socket_send
 isc__socket_sendto
 isc__socket_sendto2
@@ -95,6 +107,31 @@ isc__task_getname
 isc__task_gettag
 isc__task_unsendrange
 isc__taskmgr_mode
+@IF AES
+isc_aes128_crypt
+isc_aes192_crypt
+isc_aes256_crypt
+@END AES
+isc_app_block
+isc_app_ctxfinish
+isc_app_ctxonrun
+isc_app_ctxrun
+isc_app_ctxshutdown
+isc_app_ctxstart
+isc_app_ctxsuspend
+isc_app_finish
+isc_app_onrun
+isc_app_register
+isc_app_reload
+isc_app_run
+isc_app_shutdown
+isc_app_start
+isc_app_unblock
+isc_appctx_create
+isc_appctx_destroy
+isc_appctx_setsocketmgr
+isc_appctx_settaskmgr
+isc_appctx_settimermgr
 isc_assertion_failed
 isc_assertion_setcallback
 isc_assertion_typetotext
@@ -288,6 +325,7 @@ isc_lfsr_generate32
 isc_lfsr_init
 isc_lfsr_skip
 isc_lib_initmsgcat
+isc_lib_register
 isc_log_categorybyname
 isc_log_closefilelogs
 isc_log_create
@@ -505,6 +543,7 @@ isc_sockaddr_setport
 isc_sockaddr_totext
 isc_sockaddr_v6fromin
 isc_socket_socketevent
+isc_socketmgr_createinctx
 @IF LIBXML2
 isc_socketmgr_renderxml
 @END LIBXML2
@@ -563,6 +602,7 @@ isc_task_setprivilege
 isc_task_shutdown
 isc_task_unsend
 isc_taskmgr_create
+isc_taskmgr_createinctx
 isc_taskmgr_destroy
 isc_taskmgr_excltask
 @IF LIBXML2
@@ -605,6 +645,7 @@ isc_timer_detach
 isc_timer_reset
 isc_timer_touch
 isc_timermgr_create
+isc_timermgr_createinctx
 isc_timermgr_destroy
 isc_timermgr_poke
 isc_tm_timegm
@@ -640,6 +681,8 @@ pkcs_C_DestroyObject
 pkcs_C_DigestFinal
 pkcs_C_DigestInit
 pkcs_C_DigestUpdate
+pkcs_C_Encrypt
+pkcs_C_EncryptInit
 pkcs_C_Finalize
 pkcs_C_FindObjects
 pkcs_C_FindObjectsFinal
index 80f17c41e0e610ecc3e4dc9baa76254a6d335094..81b7647f63b793b0f93f97591fec593d51bd542d 100644 (file)
@@ -209,6 +209,12 @@ SOURCE=.\win32os.c
 # Begin Group "Header Files"
 
 # PROP Default_Filter "h;hpp;hxx;hm;inl"
+@IF AES
+# Begin Source File
+
+SOURCE=..\include\isc\aes.h
+# End Source File
+@END AES
 # Begin Source File
 
 SOURCE=..\include\isc\app.h
@@ -637,6 +643,12 @@ SOURCE=..\include\isc\xml.h
 # Begin Group "Main Isc Lib"
 
 # PROP Default_Filter "c"
+@IF AES
+# Begin Source File
+
+SOURCE=..\aes.c
+# End Source File
+@END AES
 # Begin Source File
 
 SOURCE=..\assertions.c
index 235fafe525f5304abb60322801cd2b1907984bef..ca3ff6c2d13ca8fe7748920200c3e9e978d5a390 100644 (file)
@@ -114,6 +114,9 @@ ALL : "..\..\..\Build\Release\libisc.dll"
 
 
 CLEAN :
+@IF AES
+       -@erase "$(INTDIR)\aes.obj"
+@END AES
        -@erase "$(INTDIR)\app.obj"
        -@erase "$(INTDIR)\assertions.obj"
        -@erase "$(INTDIR)\backtrace.obj"
@@ -253,6 +256,9 @@ LINK32_OBJS= \
        "$(INTDIR)\time.obj" \
        "$(INTDIR)\version.obj" \
        "$(INTDIR)\win32os.obj" \
+@IF AES
+       "$(INTDIR)\aes.obj" \
+@END AES
        "$(INTDIR)\assertions.obj" \
        "$(INTDIR)\backtrace.obj" \
        "$(INTDIR)\backtrace-emptytbl.obj" \
@@ -331,6 +337,10 @@ ALL : "..\..\..\Build\Debug\libisc.dll" "$(OUTDIR)\libisc.bsc"
 
 
 CLEAN :
+@IF AES
+       -@erase "$(INTDIR)\aes.obj"
+       -@erase "$(INTDIR)\aes.sbr"
+@END AES
        -@erase "$(INTDIR)\app.obj"
        -@erase "$(INTDIR)\app.sbr"
        -@erase "$(INTDIR)\assertions.obj"
@@ -551,6 +561,9 @@ BSC32_SBRS= \
        "$(INTDIR)\time.sbr" \
        "$(INTDIR)\version.sbr" \
        "$(INTDIR)\win32os.sbr" \
+@IF AES
+       "$(INTDIR)\aes.sbr" \
+@END AES
        "$(INTDIR)\assertions.sbr" \
        "$(INTDIR)\backtrace.sbr" \
        "$(INTDIR)\backtrace-emptytbl.sbr" \
@@ -650,6 +663,9 @@ LINK32_OBJS= \
        "$(INTDIR)\time.obj" \
        "$(INTDIR)\version.obj" \
        "$(INTDIR)\win32os.obj" \
+@IF AES
+       "$(INTDIR)\aes.obj" \
+@END AES
        "$(INTDIR)\assertions.obj" \
        "$(INTDIR)\backtrace.obj" \
        "$(INTDIR)\backtrace-emptytbl.obj" \
@@ -1178,6 +1194,24 @@ SOURCE=.\win32os.c
 
 !ENDIF 
 
+@IF AES
+SOURCE=..\aes.c
+
+!IF  "$(CFG)" == "libisc - @PLATFORM@ Release"
+
+
+"$(INTDIR)\aes.obj" : $(SOURCE) "$(INTDIR)"
+
+
+!ELSEIF  "$(CFG)" == "libisc - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\aes.obj"    "$(INTDIR)\aes.sbr" : $(SOURCE) "$(INTDIR)"
+
+
+!ENDIF 
+@END AES
+
 SOURCE=..\assertions.c
 
 !IF  "$(CFG)" == "libisc - @PLATFORM@ Release"
index 619a62f77d31cfc28aebd5730784801f33c4f035..16b49a236c82d5ca63e38eb32d0545ea36731647 100644 (file)
     <None Include="libisc.def" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+@IF AES\r
+    <ClInclude Include="..\include\isc\aes.h">\r
+      <Filter>Library Header Files</Filter>\r
+    </ClInclude>\r
+@END AES\r
     <ClInclude Include="..\include\isc\app.h">\r
       <Filter>Library Header Files</Filter>\r
     </ClInclude>\r
       <Filter>Win32 Source Files</Filter>\r
     </ClCompile>\r
 @END PKCS11\r
+@IF AES\r
+    <ClCompile Include="..\aes.c">\r
+      <Filter>Win32 Source Files</Filter>\r
+    </ClCompile>\r
+@END AES\r
     <ClCompile Include="..\assertions.c">\r
       <Filter>Library Source Files</Filter>\r
     </ClCompile>\r
index 1e01ff2b41cce97b9257950230a7ff24fe80e513..789515350ba787dfeb0b0e571ffc095662f6aa58 100644 (file)
@@ -182,6 +182,7 @@ copy ..\bin\named\named.html ..\Build\Release
 copy ..\bin\rndc\*.html ..\Build\Release\r
 copy ..\bin\confgen\*.html ..\Build\Release\r
 copy ..\bin\dig\*.html ..\Build\Release\r
+copy ..\bin\delve\*.html ..\Build\Release\r
 copy ..\bin\nsupdate\*.html ..\Build\Release\r
 copy ..\bin\check\*.html ..\Build\Release\r
 copy ..\bin\dnssec\dnssec-keygen.html ..\Build\Release\r
@@ -261,6 +262,9 @@ copy /Y @VCREDIST_PATH@ ..\Build\Release\
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\..\..\config.h" />\r
+@IF AES\r
+    <ClInclude Include="..\include\isc\aes.h" />\r
+@END AES\r
     <ClInclude Include="..\include\isc\app.h" />\r
     <ClInclude Include="..\include\isc\assertions.h" />\r
     <ClInclude Include="..\include\isc\backtrace.h" />\r
@@ -382,6 +386,9 @@ copy /Y @VCREDIST_PATH@ ..\Build\Release\
     <ClInclude Include="..\..\versions.h" />\r
   </ItemGroup>\r
   <ItemGroup>\r
+@IF AES\r
+    <ClCompile Include="..\aes.c" />\r
+@END AES\r
     <ClCompile Include="..\assertions.c" />\r
     <ClCompile Include="..\backtrace-emptytbl.c" />\r
     <ClCompile Include="..\backtrace.c" />\r
index 07286d36c46450d272d82bd3de7f671dd5c8c98c..31c1fa605206237ba9a9b18d026e384e3c516ae6 100644 (file)
@@ -344,6 +344,41 @@ pkcs_C_FindObjectsFinal(CK_SESSION_HANDLE hSession) {
        return (*sym)(hSession);
 }
 
+CK_RV
+pkcs_C_EncryptInit(CK_SESSION_HANDLE hSession,
+                  CK_MECHANISM_PTR pMechanism,
+                  CK_OBJECT_HANDLE hKey)
+{
+       static CK_C_EncryptInit sym = NULL;
+
+       if (hPK11 == NULL)
+               return (CKR_LIBRARY_FAILED_TO_LOAD);
+       if (sym == NULL)
+               sym = (CK_C_EncryptInit)GetProcAddress(hPK11, "C_EncryptInit");
+       if (sym == NULL)
+               return (CKR_SYMBOL_RESOLUTION_FAILED);
+       return (*sym)(hSession, pMechanism, hKey);
+}
+
+CK_RV
+pkcs_C_Encrypt(CK_SESSION_HANDLE hSession,
+              CK_BYTE_PTR pData,
+              CK_ULONG ulDataLen,
+              CK_BYTE_PTR pEncryptedData,
+              CK_ULONG_PTR pulEncryptedDataLen)
+{
+       static CK_C_Encrypt sym = NULL;
+
+       if (hPK11 == NULL)
+               return (CKR_LIBRARY_FAILED_TO_LOAD);
+       if (sym == NULL)
+               sym = (CK_C_Encrypt)GetProcAddress(hPK11, "C_Encrypt");
+       if (sym == NULL)
+               return (CKR_SYMBOL_RESOLUTION_FAILED);
+       return (*sym)(hSession, pData, ulDataLen,
+                     pEncryptedData, pulEncryptedDataLen);
+}
+
 CK_RV
 pkcs_C_DigestInit(CK_SESSION_HANDLE hSession,
             CK_MECHANISM_PTR pMechanism)
index dc7a9ccf9823cb18f22ce0322b8d5585644de823..69e852a87e46e5cdafcb17e2f07f65000804696e 100644 (file)
@@ -50,6 +50,7 @@
 #include <fcntl.h>
 #include <process.h>
 
+#include <isc/app.h>
 #include <isc/buffer.h>
 #include <isc/bufferlist.h>
 #include <isc/condition.h>
@@ -4066,4 +4067,25 @@ error:
 }
 #endif /* HAVE_LIBXML2 */
 
-#include "../socket_api.c"
+/*
+ * Replace ../socket_api.c
+ */
+
+isc_result_t
+isc__socket_register() {
+       return (ISC_R_SUCCESS);
+}
+
+isc_result_t
+isc_socketmgr_createinctx(isc_mem_t *mctx, isc_appctx_t *actx,
+                         isc_socketmgr_t **managerp)
+{
+       isc_result_t result;
+
+       result = isc_socketmgr_create(mctx, managerp);
+
+       if (result == ISC_R_SUCCESS)
+               isc_appctx_setsocketmgr(actx, *managerp);
+
+       return (result);
+}
index 1a94d7616645f3228129daa2d84331914db0d859..869fb85a2fefb1f00f69c338de6dd9262fc6387e 100644 (file)
@@ -102,6 +102,10 @@ SOURCE=..\aclconf.c
 # End Source File
 # Begin Source File
 
+SOURCE=..\dnsconf.c
+# End Source File
+# Begin Source File
+
 SOURCE=..\log.c
 # End Source File
 # Begin Source File
@@ -138,6 +142,10 @@ SOURCE=..\include\isccfg\aclconf.h
 # End Source File
 # Begin Source File
 
+SOURCE=..\include\isccfg\dnsconf.h
+# End Source File
+# Begin Source File
+
 SOURCE=..\include\isccfg\log.h
 # End Source File
 # Begin Source File
index a53838aecae42cc25de76148de1b94e0a12d5d36..aa24b275c9159460cef1d9cba2280d1ffab6faba 100644 (file)
@@ -126,6 +126,7 @@ CLEAN :
 !ENDIF 
        -@erase "$(INTDIR)\DLLMain.obj"
        -@erase "$(INTDIR)\aclconf.obj"
+       -@erase "$(INTDIR)\dnsconf.obj"
        -@erase "$(INTDIR)\log.obj"
        -@erase "$(INTDIR)\namedconf.obj"
        -@erase "$(INTDIR)\parser.obj"
@@ -152,6 +153,7 @@ DEF_FILE= \
 LINK32_OBJS= \
        "$(INTDIR)\DLLMain.obj" \
        "$(INTDIR)\aclconf.obj" \
+       "$(INTDIR)\dnsconf.obj" \
        "$(INTDIR)\log.obj" \
        "$(INTDIR)\parser.obj" \
        "$(INTDIR)\version.obj" \
@@ -192,6 +194,8 @@ CLEAN :
        -@erase "$(INTDIR)\DLLMain.sbr"
        -@erase "$(INTDIR)\aclconf.obj"
        -@erase "$(INTDIR)\aclconf.sbr"
+       -@erase "$(INTDIR)\dnsconf.obj"
+       -@erase "$(INTDIR)\dnsconf.sbr"
        -@erase "$(INTDIR)\log.obj"
        -@erase "$(INTDIR)\log.sbr"
        -@erase "$(INTDIR)\namedconf.obj"
@@ -220,6 +224,7 @@ BSC32_FLAGS=/nologo /o"$(OUTDIR)\libisccfg.bsc"
 BSC32_SBRS= \
        "$(INTDIR)\DLLMain.sbr" \
        "$(INTDIR)\aclconf.sbr" \
+       "$(INTDIR)\dnsconf.sbr" \
        "$(INTDIR)\log.sbr" \
        "$(INTDIR)\parser.sbr" \
        "$(INTDIR)\version.sbr" \
@@ -237,6 +242,7 @@ DEF_FILE= \
 LINK32_OBJS= \
        "$(INTDIR)\DLLMain.obj" \
        "$(INTDIR)\aclconf.obj" \
+       "$(INTDIR)\dnsconf.obj" \
        "$(INTDIR)\log.obj" \
        "$(INTDIR)\parser.obj" \
        "$(INTDIR)\version.obj" \
@@ -325,6 +331,24 @@ SOURCE=..\aclconf.c
        $(CPP) $(CPP_PROJ) $(SOURCE)
 
 
+!ENDIF 
+
+SOURCE=..\dnsconf.c
+
+!IF  "$(CFG)" == "libisccfg - @PLATFORM@ Release"
+
+
+"$(INTDIR)\dnsconf.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "libisccfg - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\dnsconf.obj"        "$(INTDIR)\dnsconf.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
 !ENDIF 
 
 SOURCE=..\log.c
index b1abea489b3709ab9a706b745367f6d448cc8837..4b610c5659f4dbc45771e0344951c5bdd4d2230d 100644 (file)
@@ -27,6 +27,9 @@
     <ClCompile Include="..\aclconf.c">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
+    <ClCompile Include="..\dnsconf.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
     <ClCompile Include="..\log.c">\r
       <Filter>Source Files</Filter>\r
     </ClCompile>\r
@@ -41,6 +44,9 @@
     <ClInclude Include="..\include\isccfg\aclconf.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
+    <ClInclude Include="..\include\isccfg\dnsconf.h">\r
+      <Filter>Header Files</Filter>\r
+    </ClInclude>\r
     <ClInclude Include="..\include\isccfg\cfg.h">\r
       <Filter>Header Files</Filter>\r
     </ClInclude>\r
index 3c3a03c0922265bf00766864c032bc6e5b0ccf2b..3e2ffe5f295a44101e0822fd165648f0df13dc32 100644 (file)
   </ItemGroup>\r
   <ItemGroup>\r
     <ClCompile Include="..\aclconf.c" />\r
+    <ClCompile Include="..\dnsconf.c" />\r
     <ClCompile Include="..\log.c" />\r
     <ClCompile Include="..\namedconf.c" />\r
     <ClCompile Include="..\parser.c" />\r
   </ItemGroup>\r
   <ItemGroup>\r
     <ClInclude Include="..\include\isccfg\aclconf.h" />\r
+    <ClInclude Include="..\include\isccfg\dnsconf.h" />\r
     <ClInclude Include="..\include\isccfg\cfg.h" />\r
     <ClInclude Include="..\include\isccfg\grammar.h" />\r
     <ClInclude Include="..\include\isccfg\log.h" />\r
index 795b1ca4fb47983d4d10fa193070d0c2afe6380f..d38d96f34600d61c8eebe7643be064ace00270c9 100644 (file)
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 
+#include <unistd.h>
+#include <netdb.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <unistd.h>
-#include <netdb.h>
 
 #include <isc/app.h>
 #include <isc/buffer.h>
+#include <isc/commandline.h>
 #include <isc/lib.h>
 #include <isc/mem.h>
 #include <isc/socket.h>
@@ -464,7 +468,7 @@ update_stat(struct probe_trans *trans) {
 static isc_result_t
 set_nextqname(struct probe_trans *trans) {
        isc_result_t result;
-       size_t domainlen;
+       unsigned int domainlen;
        isc_buffer_t b;
        char buf[4096]; /* XXX ad-hoc constant, but should be enough */
 
@@ -965,7 +969,7 @@ resolve_ns(isc_task_t *task, isc_event_t *event) {
 static isc_result_t
 probe_domain(struct probe_trans *trans) {
        isc_result_t result;
-       size_t domainlen;
+       unsigned int domainlen;
        isc_buffer_t b;
        char buf[4096]; /* XXX ad hoc constant, but should be enough */
        char *cp;
@@ -1037,10 +1041,10 @@ main(int argc, char *argv[]) {
        isc_socketmgr_t *socketmgr = NULL;
        isc_timermgr_t *timermgr = NULL;
 
-       while ((ch = getopt(argc, argv, "c:dhv")) != -1) {
+       while ((ch = isc_commandline_parse(argc, argv, "c:dhv")) != -1) {
                switch (ch) {
                case 'c':
-                       cacheserver = optarg;
+                       cacheserver = isc_commandline_argument;
                        break;
                case 'd':
                        debug_mode = ISC_TRUE;
@@ -1057,8 +1061,8 @@ main(int argc, char *argv[]) {
                }
        }
 
-       argc -= optind;
-       argv += optind;
+       argc -= isc_commandline_index;
+       argv += isc_commandline_index;
 
        /* Common set up */
        isc_lib_register();
@@ -1102,7 +1106,7 @@ main(int argc, char *argv[]) {
                exit(1);
        }
        memmove(&sa.type.sa, res->ai_addr, res->ai_addrlen);
-       sa.length = res->ai_addrlen;
+       sa.length = (unsigned int)res->ai_addrlen;
        freeaddrinfo(res);
        ISC_LINK_INIT(&sa, link);
        ISC_LIST_INIT(servers);
index 5a487584c9524c39c5e2f5a24b152c01af989e38..c186febb1cfd6f6364c3cf176d9aab8c223be065 100644 (file)
@@ -16,6 +16,7 @@
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 
 
 #include <arpa/inet.h>
 
+#include <netdb.h>
 #include <unistd.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <netdb.h>
 
 #include <isc/base64.h>
 #include <isc/buffer.h>
+#include <isc/commandline.h>
 #include <isc/lib.h>
 #include <isc/mem.h>
 #include <isc/sockaddr.h>
@@ -102,7 +106,7 @@ set_key(dns_client_t *client, char *keynamestr, char *keystr,
 {
        isc_result_t result;
        dns_fixedname_t fkeyname;
-       size_t namelen;
+       unsigned int namelen;
        dns_name_t *keyname;
        dns_rdata_dnskey_t keystruct;
        unsigned char keydata[4096];
@@ -185,7 +189,7 @@ addserver(dns_client_t *client, const char *addrstr, const char *port,
        isc_sockaddr_t sa;
        isc_sockaddrlist_t servers;
        isc_result_t result;
-       size_t namelen;
+       unsigned int namelen;
        isc_buffer_t b;
        dns_fixedname_t fname;
        dns_name_t *name = NULL;
@@ -203,7 +207,7 @@ addserver(dns_client_t *client, const char *addrstr, const char *port,
        }
        INSIST(res->ai_addrlen <= sizeof(sa.type));
        memmove(&sa.type, res->ai_addr, res->ai_addrlen);
-       sa.length = res->ai_addrlen;
+       sa.length = (unsigned int)res->ai_addrlen;
        freeaddrinfo(res);
        ISC_LINK_INIT(&sa, link);
        ISC_LIST_INIT(servers);
@@ -245,7 +249,7 @@ main(int argc, char *argv[]) {
        isc_result_t result;
        isc_buffer_t b;
        dns_fixedname_t qname0;
-       size_t namelen;
+       unsigned int namelen;
        dns_name_t *qname, *name;
        dns_rdatatype_t type = dns_rdatatype_a;
        dns_rdataset_t *rdataset;
@@ -264,23 +268,26 @@ main(int argc, char *argv[]) {
        isc_sockaddr_t a4, a6;
        isc_sockaddr_t *addr4 = NULL, *addr6 = NULL;
 
-       while ((ch = getopt(argc, argv, "a:b:es:t:k:K:p:S:")) != -1) {
+       while ((ch = isc_commandline_parse(argc, argv,
+                                          "a:b:es:t:k:K:p:S:")) != -1) {
                switch (ch) {
                case 't':
-                       tr.base = optarg;
-                       tr.length = strlen(optarg);
+                       tr.base = isc_commandline_argument;
+                       tr.length = strlen(isc_commandline_argument);
                        result = dns_rdatatype_fromtext(&type, &tr);
                        if (result != ISC_R_SUCCESS) {
                                fprintf(stderr,
-                                       "invalid RRtype: %s\n", optarg);
+                                       "invalid RRtype: %s\n",
+                                       isc_commandline_argument);
                                exit(1);
                        }
                        break;
                case 'a':
-                       algname = optarg;
+                       algname = isc_commandline_argument;
                        break;
                case 'b':
-                       if (inet_pton(AF_INET, optarg, &in4) == 1) {
+                       if (inet_pton(AF_INET,
+                                     isc_commandline_argument, &in4) == 1) {
                                if (addr4 != NULL) {
                                        fprintf(stderr, "only one local "
                                                        "address per family "
@@ -289,7 +296,9 @@ main(int argc, char *argv[]) {
                                }
                                isc_sockaddr_fromin(&a4, &in4, 0);
                                addr4 = &a4;
-                       } else if (inet_pton(AF_INET6, optarg, &in6) == 1) {
+                       } else if (inet_pton(AF_INET6,
+                                            isc_commandline_argument,
+                                            &in6) == 1) {
                                if (addr6 != NULL) {
                                        fprintf(stderr, "only one local "
                                                        "address per family "
@@ -299,7 +308,8 @@ main(int argc, char *argv[]) {
                                isc_sockaddr_fromin6(&a6, &in6, 0);
                                addr6 = &a6;
                        } else {
-                               fprintf(stderr, "invalid address %s\n", optarg);
+                               fprintf(stderr, "invalid address %s\n",
+                                       isc_commandline_argument);
                                exit(1);
                        }
                        break;
@@ -313,7 +323,7 @@ main(int argc, char *argv[]) {
                                        altserver);
                                exit(1);
                        }
-                       altserver = optarg;
+                       altserver = isc_commandline_argument;
                        break;
                case 's':
                        if (server != NULL) {
@@ -322,24 +332,24 @@ main(int argc, char *argv[]) {
                                        server);
                                exit(1);
                        }
-                       server = optarg;
+                       server = isc_commandline_argument;
                        break;
                case 'k':
-                       keynamestr = optarg;
+                       keynamestr = isc_commandline_argument;
                        break;
                case 'K':
-                       keystr = optarg;
+                       keystr = isc_commandline_argument;
                        break;
                case 'p':
-                       port = optarg;
+                       port = isc_commandline_argument;
                        break;
                default:
                        usage();
                }
        }
 
-       argc -= optind;
-       argv += optind;
+       argc -= isc_commandline_index;
+       argv += isc_commandline_index;
        if (argc < 1)
                usage();
 
index a70dd4741ede7a58c9a4d518f2e47f9e9345bb85..81208a77f0606cef0c49272c364360522caa88af 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 
 #include <arpa/inet.h>
 
 #include <unistd.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include <isc/app.h>
 #include <isc/buffer.h>
+#include <isc/commandline.h>
 #include <isc/lib.h>
 #include <isc/mem.h>
 #include <isc/socket.h>
@@ -202,7 +206,7 @@ process_answer(isc_task_t *task, isc_event_t *event) {
 static isc_result_t
 dispatch_query(struct query_trans *trans) {
        isc_result_t result;
-       size_t namelen;
+       unsigned int namelen;
        isc_buffer_t b;
        char buf[4096]; /* XXX ad hoc constant, but should be enough */
        char *cp;
@@ -275,15 +279,16 @@ main(int argc, char *argv[]) {
        isc_result_t result;
        int i;
 
-       while ((ch = getopt(argc, argv, "s:t:")) != -1) {
+       while ((ch = isc_commandline_parse(argc, argv, "s:t:")) != -1) {
                switch (ch) {
                case 't':
-                       tr.base = optarg;
-                       tr.length = strlen(optarg);
+                       tr.base = isc_commandline_argument;
+                       tr.length = strlen(isc_commandline_argument);
                        result = dns_rdatatype_fromtext(&type, &tr);
                        if (result != ISC_R_SUCCESS) {
                                fprintf(stderr,
-                                       "invalid RRtype: %s\n", optarg);
+                                       "invalid RRtype: %s\n",
+                                       isc_commandline_argument);
                                exit(1);
                        }
                        break;
@@ -294,15 +299,16 @@ main(int argc, char *argv[]) {
                                        MAX_SERVERS);
                                exit(1);
                        }
-                       serveraddr[nservers++] = (const char *)optarg;
+                       serveraddr[nservers++] =
+                               (const char *)isc_commandline_argument;
                        break;
                default:
                        usage();
                }
        }
 
-       argc -= optind;
-       argv += optind;
+       argc -= isc_commandline_index;
+       argv += isc_commandline_index;
        if (argc < 1)
                usage();
 
index 243d07a2f971e08c50c81dd68241bad2c1331180..762bd7e09a171401832eba15c247926a260f333a 100644 (file)
@@ -18,8 +18,7 @@
 
 #include <config.h>
 
-#include <sys/types.h>
-#include <sys/socket.h>
+#include <isc/net.h>
 
 #include <irs/netdb.h>
 
@@ -45,11 +44,13 @@ do_gai(int family, char *hostname) {
        }
 
        for (res = res0; res; res = res->ai_next) {
-               error = getnameinfo(res->ai_addr, res->ai_addrlen,
+               error = getnameinfo(res->ai_addr,
+                                   (socklen_t)res->ai_addrlen,
                                    addrbuf, sizeof(addrbuf),
                                    NULL, 0, NI_NUMERICHOST);
                if (error == 0)
-                       error = getnameinfo(res->ai_addr, res->ai_addrlen,
+                       error = getnameinfo(res->ai_addr,
+                                           (socklen_t)res->ai_addrlen,
                                            namebuf, sizeof(namebuf),
                                            servbuf, sizeof(servbuf), 0);
                if (error != 0) {
index 8d36a2cebde448c6367bdacb0c187f44fbf9fd98..34964c7d7e9515a258f443665cf96b19555b78c4 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 
 
 #include <arpa/inet.h>
 
+#include <netdb.h>
 #include <unistd.h>
+#endif
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <netdb.h>
 
 #include <isc/base64.h>
 #include <isc/buffer.h>
+#include <isc/commandline.h>
 #include <isc/lib.h>
 #include <isc/mem.h>
 #include <isc/sockaddr.h>
@@ -75,7 +79,7 @@ make_querymessage(dns_message_t *message, const char *namestr,
        dns_rdataset_t *qrdataset = NULL;
        isc_result_t result;
        isc_buffer_t b;
-       size_t namelen;
+       unsigned int namelen;
 
        REQUIRE(message != NULL);
        REQUIRE(namestr != NULL);
@@ -153,15 +157,16 @@ main(int argc, char *argv[]) {
        dns_rdatatype_t type = dns_rdatatype_a;
        isc_buffer_t *outputbuf;
 
-       while ((ch = getopt(argc, argv, "t:")) != -1) {
+       while ((ch = isc_commandline_parse(argc, argv, "t:")) != -1) {
                switch (ch) {
                case 't':
-                       tr.base = optarg;
-                       tr.length = strlen(optarg);
+                       tr.base = isc_commandline_argument;
+                       tr.length = strlen(isc_commandline_argument);
                        result = dns_rdatatype_fromtext(&type, &tr);
                        if (result != ISC_R_SUCCESS) {
                                fprintf(stderr,
-                                       "invalid RRtype: %s\n", optarg);
+                                       "invalid RRtype: %s\n",
+                                       isc_commandline_argument);
                                exit(1);
                        }
                        break;
@@ -170,8 +175,8 @@ main(int argc, char *argv[]) {
                }
        }
 
-       argc -= optind;
-       argv += optind;
+       argc -= isc_commandline_index;
+       argv += isc_commandline_index;
        if (argc < 2)
                usage();
 
@@ -223,7 +228,7 @@ main(int argc, char *argv[]) {
        INSIST(res->ai_addrlen <= sizeof(sa.type));
        memmove(&sa.type, res->ai_addr, res->ai_addrlen);
        freeaddrinfo(res);
-       sa.length = res->ai_addrlen;
+       sa.length = (unsigned int)res->ai_addrlen;
        ISC_LINK_INIT(&sa, link);
 
        /* Construct qname */
index f7e7dcc765e2fb3f7a2e36d3857c56f894c84c17..0fb4bb31f4b4f95758395ad09fa26f73099d0f6e 100644 (file)
@@ -18,6 +18,7 @@
 
 #include <config.h>
 
+#ifndef WIN32
 #include <sys/types.h>
 #include <sys/socket.h>
 
 
 #include <arpa/inet.h>
 
+#include <netdb.h>
 #include <unistd.h>
+#endif
+
 #include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <netdb.h>
 
 #include <isc/buffer.h>
+#include <isc/commandline.h>
 #include <isc/lex.h>
 #include <isc/lib.h>
 #include <isc/mem.h>
@@ -101,7 +105,7 @@ main(int argc, char *argv[]) {
        isc_boolean_t isdelete;
        isc_buffer_t b, *buf;
        dns_fixedname_t zname0, pname0, uname0;
-       size_t namelen;
+       unsigned int namelen;
        dns_name_t *zname = NULL, *uname, *pname;
        dns_rdataset_t *rdataset;
        dns_rdatalist_t *rdatalist;
@@ -109,30 +113,30 @@ main(int argc, char *argv[]) {
        dns_namelist_t updatelist, prereqlist, *prereqlistp = NULL;
        isc_mem_t *umctx = NULL;
 
-       while ((ch = getopt(argc, argv, "a:k:p:r:z:")) != -1) {
+       while ((ch = isc_commandline_parse(argc, argv, "a:k:p:r:z:")) != EOF) {
                switch (ch) {
                case 'k':
-                       keyfilename = optarg;
+                       keyfilename = isc_commandline_argument;
                        break;
                case 'a':
-                       auth_server = optarg;
+                       auth_server = isc_commandline_argument;
                        break;
                case 'p':
-                       prereqstr = optarg;
+                       prereqstr = isc_commandline_argument;
                        break;
                case 'r':
-                       recursive_server = optarg;
+                       recursive_server = isc_commandline_argument;
                        break;
                case 'z':
-                       zonenamestr = optarg;
+                       zonenamestr = isc_commandline_argument;
                        break;
                default:
                        usage();
                }
        }
 
-       argc -= optind;
-       argv += optind;
+       argc -= isc_commandline_index;
+       argv += isc_commandline_index;
        if (argc < 2)
                usage();
 
@@ -191,7 +195,7 @@ main(int argc, char *argv[]) {
                INSIST(res->ai_addrlen <= sizeof(sa_auth.type));
                memmove(&sa_auth.type, res->ai_addr, res->ai_addrlen);
                freeaddrinfo(res);
-               sa_auth.length = res->ai_addrlen;
+               sa_auth.length = (unsigned int)res->ai_addrlen;
                ISC_LINK_INIT(&sa_auth, link);
 
                ISC_LIST_APPEND(auth_servers, &sa_auth, link);
@@ -213,7 +217,7 @@ main(int argc, char *argv[]) {
                INSIST(res->ai_addrlen <= sizeof(sa_recursive.type));
                memmove(&sa_recursive.type, res->ai_addr, res->ai_addrlen);
                freeaddrinfo(res);
-               sa_recursive.length = res->ai_addrlen;
+               sa_recursive.length = (unsigned int)res->ai_addrlen;
                ISC_LINK_INIT(&sa_recursive, link);
                ISC_LIST_INIT(rec_servers);
                ISC_LIST_APPEND(rec_servers, &sa_recursive, link);
diff --git a/lib/samples/win32/async.dsp.in b/lib/samples/win32/async.dsp.in
new file mode 100644 (file)
index 0000000..9617056
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="async" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=async - @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 "async.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 "async.mak" CFG="async - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "async - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "async - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "async - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/sample-async.exe"
+
+!ELSEIF  "$(CFG)" == "async - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/sample-async.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "async - @PLATFORM@ Release"
+# Name "async - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\sample-async.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/async.dsw b/lib/samples/win32/async.dsw
new file mode 100644 (file)
index 0000000..65da1ff
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "async"=".\async.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/async.mak.in b/lib/samples/win32/async.mak.in
new file mode 100644 (file)
index 0000000..aacd761
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on async.dsp
+!IF "$(CFG)" == ""
+CFG=async - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to async - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "async - @PLATFORM@ Release" && "$(CFG)" != "async - @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 "async.mak" CFG="async - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "async - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "async - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "async - @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)" == "async - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\sample-async.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-async.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\sample-async.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\sample-async.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-async.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\sample-async.pdb" @MACHINE@ /out:"../../../Build/Release/sample-async.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-async.obj"
+
+"..\..\..\Build\Release\sample-async.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "async - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\sample-async.exe" "$(OUTDIR)\sample-async.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-async.obj"
+       -@erase "$(INTDIR)\sample-async.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\sample-async.pdb"
+       -@erase "$(OUTDIR)\sample-async.bsc"
+       -@erase "..\..\..\Build\Debug\sample-async.exe"
+       -@erase "..\..\..\Build\Debug\sample-async.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-async.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\sample-async.sbr"
+
+"$(OUTDIR)\sample-async.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\sample-async.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/sample-async.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-async.obj"
+
+"..\..\..\Build\Debug\sample-async.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("sample-async.dep")
+!INCLUDE "sample-async.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "sample-async.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "async - @PLATFORM@ Release" || "$(CFG)" == "async - @PLATFORM@ Debug"
+SOURCE="..\sample-async.c"
+
+!IF  "$(CFG)" == "async - @PLATFORM@ Release"
+
+
+"$(INTDIR)\sample-async.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "async - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\sample-async.obj"   "$(INTDIR)\sample-async.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/async.vcxproj.filters.in b/lib/samples/win32/async.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..f425f85
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-async.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/async.vcxproj.in b/lib/samples/win32/async.vcxproj.in
new file mode 100644 (file)
index 0000000..0e15f67
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>async</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-async.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/async.vcxproj.user b/lib/samples/win32/async.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/gai.dsp.in b/lib/samples/win32/gai.dsp.in
new file mode 100644 (file)
index 0000000..9282955
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="gai" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=gai - @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 "gai.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 "gai.mak" CFG="gai - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "gai - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "gai - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "gai - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib ../../irs/win32/Release/libirs.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/sample-gai.exe"
+
+!ELSEIF  "$(CFG)" == "gai - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib ../../irs/win32/Debug/libirs.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/sample-gai.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "gai - @PLATFORM@ Release"
+# Name "gai - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\sample-gai.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/gai.dsw b/lib/samples/win32/gai.dsw
new file mode 100644 (file)
index 0000000..7dfa9c2
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "gai"=".\gai.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/gai.mak.in b/lib/samples/win32/gai.mak.in
new file mode 100644 (file)
index 0000000..39cd2fb
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on gai.dsp
+!IF "$(CFG)" == ""
+CFG=gai - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to gai - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "gai - @PLATFORM@ Release" && "$(CFG)" != "gai - @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 "gai.mak" CFG="gai - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "gai - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "gai - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "gai - @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)" == "gai - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\sample-gai.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-gai.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\sample-gai.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\sample-gai.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-gai.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib ../../irs/win32/Release/libirs.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\sample-gai.pdb" @MACHINE@ /out:"../../../Build/Release/sample-gai.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-gai.obj"
+
+"..\..\..\Build\Release\sample-gai.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "gai - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\sample-gai.exe" "$(OUTDIR)\sample-gai.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-gai.obj"
+       -@erase "$(INTDIR)\sample-gai.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\sample-gai.pdb"
+       -@erase "$(OUTDIR)\sample-gai.bsc"
+       -@erase "..\..\..\Build\Debug\sample-gai.exe"
+       -@erase "..\..\..\Build\Debug\sample-gai.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-gai.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\sample-gai.sbr"
+
+"$(OUTDIR)\sample-gai.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib ../../irs/win32/Debug/libirs.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\sample-gai.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/sample-gai.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-gai.obj"
+
+"..\..\..\Build\Debug\sample-gai.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("sample-gai.dep")
+!INCLUDE "sample-gai.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "sample-gai.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "gai - @PLATFORM@ Release" || "$(CFG)" == "gai - @PLATFORM@ Debug"
+SOURCE="..\sample-gai.c"
+
+!IF  "$(CFG)" == "gai - @PLATFORM@ Release"
+
+
+"$(INTDIR)\sample-gai.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "gai - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\sample-gai.obj"     "$(INTDIR)\sample-gai.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/gai.vcxproj.filters.in b/lib/samples/win32/gai.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..30b1864
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-gai.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/gai.vcxproj.in b/lib/samples/win32/gai.vcxproj.in
new file mode 100644 (file)
index 0000000..7675c86
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>gai</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-gai.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/gai.vcxproj.user b/lib/samples/win32/gai.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/nsprobe.dsp.in b/lib/samples/win32/nsprobe.dsp.in
new file mode 100644 (file)
index 0000000..2b29c97
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="nsprobe" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=nsprobe - @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 "nsprobe.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 "nsprobe.mak" CFG="nsprobe - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "nsprobe - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "nsprobe - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "nsprobe - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/nsprobe.exe"
+
+!ELSEIF  "$(CFG)" == "nsprobe - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/nsprobe.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "nsprobe - @PLATFORM@ Release"
+# Name "nsprobe - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\nsprobe.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/nsprobe.dsw b/lib/samples/win32/nsprobe.dsw
new file mode 100644 (file)
index 0000000..cef2de1
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "nsprobe"=".\nsprobe.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/nsprobe.mak.in b/lib/samples/win32/nsprobe.mak.in
new file mode 100644 (file)
index 0000000..6bd4a0a
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on nsprobe.dsp
+!IF "$(CFG)" == ""
+CFG=nsprobe - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to nsprobe - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "nsprobe - @PLATFORM@ Release" && "$(CFG)" != "nsprobe - @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 "nsprobe.mak" CFG="nsprobe - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "nsprobe - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "nsprobe - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "nsprobe - @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)" == "nsprobe - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\nsprobe.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\nsprobe.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\nsprobe.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\nsprobe.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\nsprobe.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\nsprobe.pdb" @MACHINE@ /out:"../../../Build/Release/nsprobe.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\nsprobe.obj"
+
+"..\..\..\Build\Release\nsprobe.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "nsprobe - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\nsprobe.exe" "$(OUTDIR)\nsprobe.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\nsprobe.obj"
+       -@erase "$(INTDIR)\nsprobe.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\nsprobe.pdb"
+       -@erase "$(OUTDIR)\nsprobe.bsc"
+       -@erase "..\..\..\Build\Debug\nsprobe.exe"
+       -@erase "..\..\..\Build\Debug\nsprobe.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\nsprobe.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\nsprobe.sbr"
+
+"$(OUTDIR)\nsprobe.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\nsprobe.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/nsprobe.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\nsprobe.obj"
+
+"..\..\..\Build\Debug\nsprobe.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("nsprobe.dep")
+!INCLUDE "nsprobe.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "nsprobe.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "nsprobe - @PLATFORM@ Release" || "$(CFG)" == "nsprobe - @PLATFORM@ Debug"
+SOURCE="..\nsprobe.c"
+
+!IF  "$(CFG)" == "nsprobe - @PLATFORM@ Release"
+
+
+"$(INTDIR)\nsprobe.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "nsprobe - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\nsprobe.obj"        "$(INTDIR)\nsprobe.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/nsprobe.vcxproj.filters.in b/lib/samples/win32/nsprobe.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..0c43dfd
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\nsprobe.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/nsprobe.vcxproj.in b/lib/samples/win32/nsprobe.vcxproj.in
new file mode 100644 (file)
index 0000000..418a691
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>nsprobe</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\nsprobe.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/nsprobe.vcxproj.user b/lib/samples/win32/nsprobe.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/request.dsp.in b/lib/samples/win32/request.dsp.in
new file mode 100644 (file)
index 0000000..aca8eb2
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="request" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=request - @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 "request.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 "request.mak" CFG="request - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "request - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "request - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "request - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/sample-request.exe"
+
+!ELSEIF  "$(CFG)" == "request - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/sample-request.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "request - @PLATFORM@ Release"
+# Name "request - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\sample-request.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/request.dsw b/lib/samples/win32/request.dsw
new file mode 100644 (file)
index 0000000..9528505
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "request"=".\request.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/request.mak.in b/lib/samples/win32/request.mak.in
new file mode 100644 (file)
index 0000000..9a960ea
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on request.dsp
+!IF "$(CFG)" == ""
+CFG=request - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to request - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "request - @PLATFORM@ Release" && "$(CFG)" != "request - @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 "request.mak" CFG="request - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "request - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "request - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "request - @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)" == "request - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\sample-request.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-request.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\sample-request.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\sample-request.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-request.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\sample-request.pdb" @MACHINE@ /out:"../../../Build/Release/sample-request.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-request.obj"
+
+"..\..\..\Build\Release\sample-request.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "request - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\sample-request.exe" "$(OUTDIR)\sample-request.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-request.obj"
+       -@erase "$(INTDIR)\sample-request.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\sample-request.pdb"
+       -@erase "$(OUTDIR)\sample-request.bsc"
+       -@erase "..\..\..\Build\Debug\sample-request.exe"
+       -@erase "..\..\..\Build\Debug\sample-request.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-request.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\sample-request.sbr"
+
+"$(OUTDIR)\sample-request.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\sample-request.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/sample-request.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-request.obj"
+
+"..\..\..\Build\Debug\sample-request.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("sample-request.dep")
+!INCLUDE "sample-request.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "sample-request.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "request - @PLATFORM@ Release" || "$(CFG)" == "request - @PLATFORM@ Debug"
+SOURCE="..\sample-request.c"
+
+!IF  "$(CFG)" == "request - @PLATFORM@ Release"
+
+
+"$(INTDIR)\sample-request.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "request - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\sample-request.obj" "$(INTDIR)\sample-request.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/request.vcxproj.filters.in b/lib/samples/win32/request.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..0ddc9df
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-request.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/request.vcxproj.in b/lib/samples/win32/request.vcxproj.in
new file mode 100644 (file)
index 0000000..42be79f
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{FF440E85-7450-439C-82EE-04C464512D0E}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>request</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-request.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/request.vcxproj.user b/lib/samples/win32/request.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/resolve.dsp.in b/lib/samples/win32/resolve.dsp.in
new file mode 100644 (file)
index 0000000..0c71464
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="resolve" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=resolve - @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 "resolve.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 "resolve.mak" CFG="resolve - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "resolve - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "resolve - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "resolve - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib ../../irs/win32/Release/libirs.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/resolve.exe"
+
+!ELSEIF  "$(CFG)" == "resolve - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib ../../irs/win32/Debug/libirs.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/resolve.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "resolve - @PLATFORM@ Release"
+# Name "resolve - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\resolve.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/resolve.dsw b/lib/samples/win32/resolve.dsw
new file mode 100644 (file)
index 0000000..222580a
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "resolve"=".\resolve.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/resolve.mak.in b/lib/samples/win32/resolve.mak.in
new file mode 100644 (file)
index 0000000..f6898d4
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on resolve.dsp
+!IF "$(CFG)" == ""
+CFG=resolve - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to resolve - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "resolve - @PLATFORM@ Release" && "$(CFG)" != "resolve - @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 "resolve.mak" CFG="resolve - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "resolve - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "resolve - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "resolve - @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)" == "resolve - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\resolve.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\resolve.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\resolve.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\resolve.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\resolve.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib ../../irs/win32/Release/libirs.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\resolve.pdb" @MACHINE@ /out:"../../../Build/Release/resolve.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\resolve.obj"
+
+"..\..\..\Build\Release\resolve.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "resolve - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\resolve.exe" "$(OUTDIR)\resolve.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\resolve.obj"
+       -@erase "$(INTDIR)\resolve.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\resolve.pdb"
+       -@erase "$(OUTDIR)\resolve.bsc"
+       -@erase "..\..\..\Build\Debug\resolve.exe"
+       -@erase "..\..\..\Build\Debug\resolve.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /I "../../irs/win32/include" /I "../../irs/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\resolve.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\resolve.sbr"
+
+"$(OUTDIR)\resolve.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib ../../irs/win32/Debug/libirs.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\resolve.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/resolve.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\resolve.obj"
+
+"..\..\..\Build\Debug\resolve.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("resolve.dep")
+!INCLUDE "resolve.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "resolve.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "resolve - @PLATFORM@ Release" || "$(CFG)" == "resolve - @PLATFORM@ Debug"
+SOURCE="..\resolve.c"
+
+!IF  "$(CFG)" == "resolve - @PLATFORM@ Release"
+
+
+"$(INTDIR)\resolve.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "resolve - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\resolve.obj"        "$(INTDIR)\resolve.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/resolve.vcxproj.filters.in b/lib/samples/win32/resolve.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..e866b84
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\resolve.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/resolve.vcxproj.in b/lib/samples/win32/resolve.vcxproj.in
new file mode 100644 (file)
index 0000000..96b7984
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{F66D8B7E-721D-4602-99AD-820D19AD1313}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>resolve</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\resolve.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/resolve.vcxproj.user b/lib/samples/win32/resolve.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/update.dsp.in b/lib/samples/win32/update.dsp.in
new file mode 100644 (file)
index 0000000..583e3be
--- /dev/null
@@ -0,0 +1,103 @@
+# Microsoft Developer Studio Project File - Name="update" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "@PLATFORM@ (x86) Console Application" 0x0103
+
+CFG=update - @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 "update.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 "update.mak" CFG="update - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "update - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "update - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF  "$(CFG)" == "update - @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 /W3 @COPTX@ @COPTI@ /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /c
+# 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 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 /subsystem:console @MACHINE@
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console @MACHINE@ /out:"../../../Build/Release/sample-update.exe"
+
+!ELSEIF  "$(CFG)" == "update - @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 /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" @COPTY@ /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR /FD /GZ /c
+# SUBTRACT CPP /X @COPTY@
+# 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 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 /subsystem:console /debug @MACHINE@ /pdbtype:sept
+# ADD LINK32 user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /debug @MACHINE@ /out:"../../../Build/Debug/sample-update.exe" /pdbtype:sept
+
+!ENDIF 
+
+# Begin Target
+
+# Name "update - @PLATFORM@ Release"
+# Name "update - @PLATFORM@ Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\sample-update.c"
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# End Target
+# End Project
diff --git a/lib/samples/win32/update.dsw b/lib/samples/win32/update.dsw
new file mode 100644 (file)
index 0000000..829e2e8
--- /dev/null
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "update"=".\update.dsp" - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/lib/samples/win32/update.mak.in b/lib/samples/win32/update.mak.in
new file mode 100644 (file)
index 0000000..345ecf8
--- /dev/null
@@ -0,0 +1,299 @@
+# Microsoft Developer Studio Generated NMAKE File, Based on update.dsp
+!IF "$(CFG)" == ""
+CFG=update - @PLATFORM@ Debug
+!MESSAGE No configuration specified. Defaulting to update - @PLATFORM@ Debug.
+!ENDIF 
+
+!IF "$(CFG)" != "update - @PLATFORM@ Release" && "$(CFG)" != "update - @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 "update.mak" CFG="update - @PLATFORM@ Debug"
+!MESSAGE 
+!MESSAGE Possible choices for configuration are:
+!MESSAGE 
+!MESSAGE "update - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE "update - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
+!MESSAGE 
+!ERROR An invalid configuration is specified.
+!ENDIF 
+
+!IF "$(OS)" == "Windows_NT"
+NULL=
+!ELSE 
+NULL=nul
+!ENDIF 
+
+!IF  "$(CFG)" == "update - @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)" == "update - @PLATFORM@ Release"
+
+OUTDIR=.\Release
+INTDIR=.\Release
+
+ALL : "..\..\..\Build\Release\sample-update.exe"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-update.obj"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "..\..\..\Build\Release\sample-update.exe"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "NDEBUG" /D "__STDC__" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\sample-update.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-update.bsc" 
+BSC32_SBRS= \
+       
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Release/libisc.lib ../../dns/win32/Release/libdns.lib ../../isccfg/win32/Release/libisccfg.lib /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\sample-update.pdb" @MACHINE@ /out:"../../../Build/Release/sample-update.exe" 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-update.obj"
+
+"..\..\..\Build\Release\sample-update.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ELSEIF  "$(CFG)" == "update - @PLATFORM@ Debug"
+
+OUTDIR=.\Debug
+INTDIR=.\Debug
+# Begin Custom Macros
+OutDir=.\Debug
+# End Custom Macros
+
+ALL : "..\..\..\Build\Debug\sample-update.exe" "$(OUTDIR)\sample-update.bsc"
+
+
+CLEAN :
+       -@erase "$(INTDIR)\sample-update.obj"
+       -@erase "$(INTDIR)\sample-update.sbr"
+       -@erase "$(INTDIR)\vc60.idb"
+       -@erase "$(INTDIR)\vc60.pdb"
+       -@erase "$(OUTDIR)\sample-update.pdb"
+       -@erase "$(OUTDIR)\sample-update.bsc"
+       -@erase "..\..\..\Build\Debug\sample-update.exe"
+       -@erase "..\..\..\Build\Debug\sample-update.ilk"
+       -@$(_VC_MANIFEST_CLEAN)
+
+"$(OUTDIR)" :
+    if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
+
+CPP=cl.exe
+CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "../../../" @LIBXML2_INC@ /I "../../isc/win32" /I "../../isc/win32/include" /I "../../isc/include" /I "../../dns/win32/include" /I "../../dns/include" /D "_DEBUG" /D "WIN32" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 
+
+.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) $< 
+<<
+
+RSC=rc.exe
+BSC32=bscmake.exe
+BSC32_FLAGS=/nologo /o"$(OUTDIR)\sample-update.bsc" 
+BSC32_SBRS= \
+       "$(INTDIR)\sample-update.sbr"
+
+"$(OUTDIR)\sample-update.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
+    $(BSC32) @<<
+  $(BSC32_FLAGS) $(BSC32_SBRS)
+<<
+
+LINK32=link.exe
+LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib ../../isc/win32/Debug/libisc.lib ../../dns/win32/Debug/libdns.lib ../../isccfg/win32/Debug/libisccfg.lib /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\sample-update.pdb" /debug @MACHINE@ /out:"../../../Build/Debug/sample-update.exe" /pdbtype:sept 
+LINK32_OBJS= \
+       "$(INTDIR)\sample-update.obj"
+
+"..\..\..\Build\Debug\sample-update.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
+    $(LINK32) @<<
+  $(LINK32_FLAGS) $(LINK32_OBJS)
+<<
+    $(_VC_MANIFEST_EMBED_EXE)
+
+!ENDIF 
+
+
+!IF "$(NO_EXTERNAL_DEPS)" != "1"
+!IF EXISTS("sample-update.dep")
+!INCLUDE "sample-update.dep"
+!ELSE 
+!MESSAGE Warning: cannot find "sample-update.dep"
+!ENDIF 
+!ENDIF 
+
+
+!IF "$(CFG)" == "update - @PLATFORM@ Release" || "$(CFG)" == "update - @PLATFORM@ Debug"
+SOURCE="..\sample-update.c"
+
+!IF  "$(CFG)" == "update - @PLATFORM@ Release"
+
+
+"$(INTDIR)\sample-update.obj" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF  "$(CFG)" == "update - @PLATFORM@ Debug"
+
+
+"$(INTDIR)\sample-update.obj"  "$(INTDIR)\sample-update.sbr" : $(SOURCE) "$(INTDIR)"
+       $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!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/samples/win32/update.vcxproj.filters.in b/lib/samples/win32/update.vcxproj.filters.in
new file mode 100644 (file)
index 0000000..0288408
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Source Files">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Header Files">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-update.c">\r
+      <Filter>Source Files</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/update.vcxproj.in b/lib/samples/win32/update.vcxproj.in
new file mode 100644 (file)
index 0000000..8cf9a54
--- /dev/null
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|@PLATFORM@">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|@PLATFORM@">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>@PLATFORM@</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{05682E12-523F-4DAE-8E6D-ADFDBC308AFD}</ProjectGuid>\r
+    <Keyword>Win32Proj</Keyword>\r
+    <RootNamespace>update</RootNamespace>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>true</UseDebugLibraries>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">\r
+    <ConfigurationType>Application</ConfigurationType>\r
+    <UseDebugLibraries>false</UseDebugLibraries>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <LinkIncremental>true</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <LinkIncremental>false</LinkIncremental>\r
+    <OutDir>..\..\..\Build\$(Configuration)\</OutDir>\r
+    <IntDir>.\$(Configuration)\</IntDir>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">\r
+    <ClCompile>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <FunctionLevelLinking>false</FunctionLevelLinking>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <BrowseInformation>true</BrowseInformation>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">\r
+    <ClCompile>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>\r
+      <WholeProgramOptimization>false</WholeProgramOptimization>\r
+      <StringPooling>true</StringPooling>\r
+      <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>\r
+      <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>\r
+      <ObjectFileName>.\$(Configuration)\</ObjectFileName>\r
+      <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>\r
+      <AdditionalIncludeDirectories>..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+    </ClCompile>\r
+    <Link>\r
+      <SubSystem>Console</SubSystem>\r
+      <GenerateDebugInformation>false</GenerateDebugInformation>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>\r
+      <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>\r
+      <AdditionalLibraryDirectories>..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>\r
+      <AdditionalDependencies>libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\sample-update.c" />\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/lib/samples/win32/update.vcxproj.user b/lib/samples/win32/update.vcxproj.user
new file mode 100644 (file)
index 0000000..695b5c7
--- /dev/null
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+</Project>
\ No newline at end of file
index 87bfc5d4dd572314da5ad913b6f22c3d8304261f..54089f8fb311b5465a2e011d6482975a2c4abf6e 100644 (file)
 ./lib/irs/include/irs/version.h                        C       2009
 ./lib/irs/resconf.c                            C       2009,2011,2012,2014
 ./lib/irs/version.c                            C       2009
+./lib/irs/win32/DLLMain.c                      C       2014
+./lib/irs/win32/Makefile.in                    MAKE    2014
+./lib/irs/win32/include/Makefile.in            MAKE    2014
+./lib/irs/win32/include/irs/Makefile.in                MAKE    2014
+./lib/irs/win32/include/irs/netdb.h            C       2014
+./lib/irs/win32/include/irs/platform.h         C       2014
+./lib/irs/win32/libirs.def                     X       2014
+./lib/irs/win32/libirs.dsp.in                  X       2014
+./lib/irs/win32/libirs.dsw                     X       2001
+./lib/irs/win32/libirs.mak.in                  X       2014
+./lib/irs/win32/libirs.vcxproj.filters.in      X       2014
+./lib/irs/win32/libirs.vcxproj.in              X       2014
+./lib/irs/win32/libirs.vcxproj.user            X       2014
+./lib/irs/win32/version.c                      C       2014
 ./lib/isc/Atffile                              X       2011
 ./lib/isc/Makefile.in                          MAKE    1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014
 ./lib/isc/aes.c                                        C       2014
 ./lib/samples/sample-gai.c                     C       2009,2012,2013
 ./lib/samples/sample-request.c                 C       2009,2012,2013,2014
 ./lib/samples/sample-update.c                  C       2009,2010,2012,2013,2014
+./lib/samples/win32/async.dsp.in               X       2014
+./lib/samples/win32/async.dsw                  X       2014
+./lib/samples/win32/async.mak.in               X       2014
+./lib/samples/win32/async.vcxproj.filters.in   X       2014
+./lib/samples/win32/async.vcxproj.in           X       2014
+./lib/samples/win32/async.vcxproj.user         X       2014
+./lib/samples/win32/gai.dsp.in                 X       2014
+./lib/samples/win32/gai.dsw                    X       2014
+./lib/samples/win32/gai.mak.in                 X       2014
+./lib/samples/win32/gai.vcxproj.filters.in     X       2014
+./lib/samples/win32/gai.vcxproj.in             X       2014
+./lib/samples/win32/gai.vcxproj.user           X       2014
+./lib/samples/win32/nsprobe.dsp.in             X       2014
+./lib/samples/win32/nsprobe.dsw                        X       2014
+./lib/samples/win32/nsprobe.mak.in             X       2014
+./lib/samples/win32/nsprobe.vcxproj.filters.in X       2014
+./lib/samples/win32/nsprobe.vcxproj.in         X       2014
+./lib/samples/win32/nsprobe.vcxproj.user       X       2014
+./lib/samples/win32/request.dsp.in             X       2014
+./lib/samples/win32/request.dsw                        X       2014
+./lib/samples/win32/request.mak.in             X       2014
+./lib/samples/win32/request.vcxproj.filters.in X       2014
+./lib/samples/win32/request.vcxproj.in         X       2014
+./lib/samples/win32/request.vcxproj.user       X       2014
+./lib/samples/win32/resolve.dsp.in             X       2014
+./lib/samples/win32/resolve.dsw                        X       2014
+./lib/samples/win32/resolve.mak.in             X       2014
+./lib/samples/win32/resolve.vcxproj.filters.in X       2014
+./lib/samples/win32/resolve.vcxproj.in         X       2014
+./lib/samples/win32/resolve.vcxproj.user       X       2014
+./lib/samples/win32/update.dsp.in              X       2014
+./lib/samples/win32/update.dsw                 X       2014
+./lib/samples/win32/update.mak.in              X       2014
+./lib/samples/win32/update.vcxproj.filters.in  X       2014
+./lib/samples/win32/update.vcxproj.in          X       2014
+./lib/samples/win32/update.vcxproj.user                X       2014
 ./lib/tests/Makefile.in                                MAKE    1998,1999,2000,2001,2003,2004,2007,2009,2012
 ./lib/tests/T_testlist.imp                     X       2004
 ./lib/tests/include/Makefile.in                        MAKE    1998,1999,2000,2001,2004,2007,2012
index 78271edc09d3a5569d1081a0737e0fb3a645a198..ba42e24bf91d388444e7403bad7d8f67dda6b4be 100644 (file)
@@ -42,6 +42,8 @@ my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
                 "..\\bin\\confgen\\win32\\ddnsconfgen.mak",
                 "..\\bin\\confgen\\win32\\rndcconfgen.dsp",
                 "..\\bin\\confgen\\win32\\rndcconfgen.mak",
+                "..\\bin\\delve\\win32\\delve.dsp",
+                "..\\bin\\delve\\win32\\delve.mak",
                 "..\\bin\\dig\\win32\\dig.dsp",
                 "..\\bin\\dig\\win32\\dig.mak",
                 "..\\bin\\dig\\win32\\dighost.dsp",
@@ -154,6 +156,8 @@ my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
                 "..\\lib\\dns\\win32\\libdns.def",
                 "..\\lib\\dns\\win32\\libdns.dsp",
                 "..\\lib\\dns\\win32\\libdns.mak",
+                "..\\lib\\irs\\win32\\libirs.dsp",
+                "..\\lib\\irs\\win32\\libirs.mak",
                 "..\\lib\\isc\\win32\\libisc.def",
                 "..\\lib\\isc\\win32\\libisc.dsp",
                 "..\\lib\\isc\\win32\\libisc.mak",
@@ -163,6 +167,18 @@ my @filelist = ("..\\bin\\check\\win32\\checktool.dsp",
                 "..\\lib\\isccfg\\win32\\libisccfg.mak",
                 "..\\lib\\lwres\\win32\\liblwres.dsp",
                 "..\\lib\\lwres\\win32\\liblwres.mak",
+                "..\\lib\\samples\\win32\\async.dsp",
+                "..\\lib\\samples\\win32\\async.mak",
+                "..\\lib\\samples\\win32\\gai.dsp",
+                "..\\lib\\samples\\win32\\gai.mak",
+                "..\\lib\\samples\\win32\\nsprobe.dsp",
+                "..\\lib\\samples\\win32\\nsprobe.mak",
+                "..\\lib\\samples\\win32\\request.dsp",
+                "..\\lib\\samples\\win32\\request.mak",
+                "..\\lib\\samples\\win32\\resolve.dsp",
+                "..\\lib\\samples\\win32\\resolve.mak",
+                "..\\lib\\samples\\win32\\update.dsp",
+                "..\\lib\\samples\\win32\\update.mak",
                 "..\\lib\\tests\\win32\\libtests.dsp",
                 "..\\lib\\tests\\win32\\libtests.mak",
                 "..\\lib\\win32\\bindevt\\bindevt.dsp",
@@ -184,6 +200,8 @@ my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
                    "..\\bin\\confgen\\win32\\ddnsconfgen.vcxproj.filters",
                    "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj",
                    "..\\bin\\confgen\\win32\\rndcconfgen.vcxproj.filters",
+                   "..\\bin\\delve\\win32\\delve.vcxproj",
+                   "..\\bin\\delve\\win32\\delve.vcxproj.filters",
                    "..\\bin\\dig\\win32\\dig.vcxproj",
                    "..\\bin\\dig\\win32\\dig.vcxproj.filters",
                    "..\\bin\\dig\\win32\\dighost.vcxproj",
@@ -296,6 +314,8 @@ my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
                    "..\\lib\\dns\\win32\\gen.vcxproj.filters",
                    "..\\lib\\dns\\win32\\libdns.vcxproj",
                    "..\\lib\\dns\\win32\\libdns.vcxproj.filters",
+                   "..\\lib\\irs\\win32\\libirs.vcxproj",
+                   "..\\lib\\irs\\win32\\libirs.vcxproj.filters",
                    "..\\lib\\isc\\win32\\libisc.vcxproj",
                    "..\\lib\\isc\\win32\\libisc.vcxproj.filters",
                    "..\\lib\\isccc\\win32\\libisccc.vcxproj",
@@ -304,6 +324,18 @@ my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
                    "..\\lib\\isccfg\\win32\\libisccfg.vcxproj.filters",
                    "..\\lib\\lwres\\win32\\liblwres.vcxproj",
                    "..\\lib\\lwres\\win32\\liblwres.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\resolve.vcxproj",
+                   "..\\lib\\samples\\win32\\resolve.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\async.vcxproj",
+                   "..\\lib\\samples\\win32\\async.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\gai.vcxproj",
+                   "..\\lib\\samples\\win32\\gai.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\update.vcxproj",
+                   "..\\lib\\samples\\win32\\update.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\request.vcxproj",
+                   "..\\lib\\samples\\win32\\request.vcxproj.filters",
+                   "..\\lib\\samples\\win32\\nsprobe.vcxproj",
+                   "..\\lib\\samples\\win32\\nsprobe.vcxproj.filters",
                    "..\\lib\\tests\\win32\\libtests.vcxproj",
                    "..\\lib\\tests\\win32\\libtests.vcxproj.filters",
                    "..\\lib\\win32\\bindevt\\bindevt.vcxproj",
@@ -314,7 +346,8 @@ my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj",
 
 my %configdefh;
 
-my @substdefh = ("ALLOW_FILTER_AAAA",
+my @substdefh = ("AES_SIT",
+                 "ALLOW_FILTER_AAAA",
                  "CONFIGARGS",
                  "DNS_RDATASET_FIXED",
                  "ENABLE_RPZ_NSDNAME",
@@ -323,19 +356,23 @@ my @substdefh = ("ALLOW_FILTER_AAAA",
                  "HAVE_EVP_SHA384",
                  "HAVE_EVP_SHA512",
                  "HAVE_GEOIP",
-                 "HAVE_GEOIP_V6",
                  "HAVE_GEOIP_CITY_V6",
+                 "HAVE_GEOIP_V6",
                  "HAVE_LIBXML2",
+                 "HAVE_OPENSSL_AES",
                  "HAVE_OPENSSL_DSA",
                  "HAVE_OPENSSL_ECDSA",
+                 "HAVE_OPENSSL_EVP_AES",
                  "HAVE_OPENSSL_GOST",
                  "HAVE_PKCS11_ECDSA",
                  "HAVE_PKCS11_GOST",
                  "HAVE_READLINE",
+                 "HMAC_SHA1_SIT",
+                 "HMAC_SHA256_SIT",
                  "ISC_LIST_CHECKINIT",
                  "PREFER_GOSTASN1",
-                 "WITH_IDN",
-                 "TUNE_LARGE");
+                 "TUNE_LARGE",
+                 "WITH_IDN");
 
 # for platform.h
 
@@ -346,8 +383,9 @@ my @substdefp = ("ISC_PLATFORM_HAVEATOMICSTORE",
                  "ISC_PLATFORM_HAVEXADD",
                  "ISC_PLATFORM_HAVEXADDQ",
                  "ISC_PLATFORM_NEEDSTRCASESTR",
-                 "ISC_PLATFORM_OPENSSLHASH",
-                 "ISC_PLATFORM_USEBACKTRACE");
+                 "ISC_PLATFORM_USEBACKTRACE",
+                 "ISC_PLATFORM_USESIT",
+                 "ISC_PLATFORM_WANTAES");
 
 # includes
 
@@ -423,7 +461,8 @@ my @substdefd = ("CRYPTO",
 
 my %configcond;
 
-my @substcond = ("ATOMIC",
+my @substcond = ("AES",
+                 "ATOMIC",
                  "GSSAPI",
                  "GEOIP",
                  "IDNKIT",
@@ -431,6 +470,7 @@ my @substcond = ("ATOMIC",
                  "OPENSSL",
                  "PKCS11",
                  "PYTHON",
+                 "SAMPLES",
                  "TESTS",
                  "XTESTS");
 
@@ -446,12 +486,13 @@ my @enablelist = ("developer",
                   "openssl-hash",
                   "filter-aaaa",
                   "rpz-nsdname",
-                  "rpz-nsip");
-
+                  "rpz-nsip",
+                  "sit");
 
 # with-xxx/without-xxx
 
-my @withlist = ("cross-compile",
+my @withlist = ("aes",
+                "cross-compile",
                 "ecdsa",
                 "extra-tests",
                 "gssapi",
@@ -464,6 +505,8 @@ my @withlist = ("cross-compile",
                 "pkcs11",
                 "python",
                 "readline",
+                "samples",
+                "sit-alg",
                 "tests",
                 "tuning",
                 "vcredist");
@@ -494,20 +537,24 @@ my @help = (
 "\nOptional Features:\n",
 "  enable-intrinsics     enable instrinsic/atomic functions [default=yes]\n",
 "  enable-native-pkcs11  use native PKCS#11 for all crypto [default=no]\n",
-"  enable-openssl-hash   use OpenSSL for hash functions [default=no]\n",
+"  enable-openssl-hash   use OpenSSL for hash functions [default=yes]\n",
 "  enable-isc-spnego     use SPNEGO from lib/dns [default=yes]\n",
 "  enable-filter-aaaa    enable filtering of AAAA records [default=no]\n",
 "  enable-fixed-rrset    enable fixed rrset ordering [default=no]\n",
 "  enable-developer      enable developer build settings [default=no]\n",
 "  enable-rpz-nsip       enable rpz-nsip rules [default=yes]\n",
 "  enable-rpz-nsdname    enable rpz-nsdname rules [default=yes]\n",
+"  enable-sit            enable source identity token [default=yes]\n",
 "\nOptional Packages:\n",
 "  with-tests            build with test suite\n",
 "  with-extra-tests      build with extra test suite\n",
+"  with-samples          build with sample programs\n",
 "  with-openssl[=PATH]   build with OpenSSL yes|no|path\n",
 "  with-pkcs11[=PATH]    build with PKCS#11 support yes|no|provider-path\n",
 "  with-ecdsa            crypto ECDSA\n",
 "  with-gost[=ENC]       crypto GOST yes|no|raw|ans1\n",
+"  with-aes              crypto AES\n",
+"  with-sit-alg          choose the algorithm for SIT aes|sha1|sha256\n",
 "  with-gssapi[=PATH]    build with MIT KfW GSSAPI yes|no|path\n",
 "  with-libxml2[=PATH]   build with libxml2 library yes|no|path\n",
 "  with-geoip[=PATH]     build with GeoIP support yes|no|path\n",
@@ -531,15 +578,17 @@ my $want_unknown = "no";
 my $unknown_value;
 my $enable_intrinsics = "yes";
 my $enable_native_pkcs11 = "no";
-my $enable_openssl_hash = "no";
+my $enable_openssl_hash = "auto";
 my $enable_filter_aaaa = "no";
 my $enable_isc_spnego = "yes";
 my $enable_fixed_rrset = "no";
 my $enable_developer = "no";
 my $enable_rpz_nsip = "yes";
 my $enable_rpz_nsdname = "yes";
+my $enable_sit = "yes";
 my $use_tests = "no";
 my $use_xtests = "no";
+my $use_samples = "no";
 my $use_openssl = "auto";
 my $openssl_path = "..\\..\\";
 my $use_pkcs11 = "no";
@@ -547,6 +596,8 @@ my $pkcs11_path = "unknown";
 my $use_ecdsa = "auto";
 my $use_gost = "auto";
 my $gost_encoding = "raw";
+my $use_aes = "auto";
+my $sit_algorithm = "aes";
 my $use_gssapi = "no";
 my $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\";
 my $use_geoip = "no";
@@ -671,6 +722,8 @@ sub myenable {
     } elsif ($key =~ /^openssl-hash$/i) {
         if ($val =~ /^yes$/i) {
             $enable_openssl_hash = "yes";
+        } elsif ($val =~ /^no$/i) {
+            $enable_openssl_hash = "no";
         }
     } elsif ($key =~ /^isc-spnego$/i) {
         if ($val =~ /^no$/i) {
@@ -696,6 +749,10 @@ sub myenable {
         if ($val =~ /^no$/i) {
             $enable_rpz_nsdname = "no";
         }
+    } elsif ($key =~ /^sit$/i) {
+        if ($val =~ /^no$/i) {
+            $enable_sit = "no";
+        }
     } else {
         $want_unknown = "yes";
         if ($val eq "no") {
@@ -715,6 +772,8 @@ if ($enable_developer eq "yes") {
     $enable_fixed_rrset = "yes";
     # TODO: dlz filesystem
     $use_tests = "yes";
+    $use_samples = "yes";
+    $enable_sit = "yes";
 }
 
 # parse with/without
@@ -732,6 +791,10 @@ sub mywith {
             $use_tests = "yes";
             $use_xtests = "yes";
         }
+    } elsif ($key =~ /^samples$/i) {
+        if ($val =~ /^yes$/i) {
+            $use_samples = "yes";
+        }
     } elsif ($key =~ /^openssl$/i) {
         if ($val =~ /^no$/i) {
             $use_openssl = "no";
@@ -760,6 +823,14 @@ sub mywith {
             $use_gost = "yes";
             $gost_encoding = $val;
         }
+    } elsif ($key =~ /^aes$/i) {
+        if ($val =~ /^no$/i) {
+            $use_aes = "no";
+        } elsif ($val =~ /^yes$/i) {
+            $use_aes = "yes";
+        }
+    } elsif ($key =~ /^sit-alg$/i) {
+        $sit_algorithm = $val;
     } elsif ($key =~ /^gssapi$/i) {
         if ($val !~ /^no$/i) {
             $use_gssapi = "yes";
@@ -836,6 +907,19 @@ sub mywith {
     }
 }
 
+# resolve enable-openssl-hash
+if ($enable_openssl_hash eq "auto") {
+    if ($use_openssl ne "no") {
+        if ($enable_native_pkcs11 eq "yes") {
+            $enable_openssl_hash="no";
+        } else {
+            $enable_openssl_hash="yes";
+        }
+    } else {
+        $enable_openssl_hash="no";
+    }
+}
+
 if ($want_help ne "no") {
     foreach (@help) {
         print $_;
@@ -924,6 +1008,12 @@ if ($verbose) {
     } else {
         print "rpz-nsdname: disabled\n";
     }
+    if ($enable_sit eq "yes") {
+        print "sit: enabled\n";
+        print "sit algorithm: $sit_algorithm\n";
+    } else {
+        print "sit: disabled\n";
+    }
     if ($use_openssl eq "no") {
         print "openssl: disabled\n";
     } else {
@@ -935,6 +1025,9 @@ if ($verbose) {
     if ($use_xtests eq "yes") {
         print "extra tests: enabled\n";
     }
+    if ($use_samples eq "yes") {
+        print "sample programs: enabled\n";
+    }
     if ($use_pkcs11 eq "no") {
         print "pkcs11: disabled\n";
     } else {
@@ -951,6 +1044,11 @@ if ($verbose) {
         print "gost: enabled\n";
         print "gost private key encoding: $gost_encoding\n";
     }
+    if ($use_aes eq "no") {
+        print "aes: disabled\n";
+    } else {
+        print "aes: enabled\n";
+    }
     if ($use_gssapi eq "no") {
         print "gssapi: disabled\n";
     } else {
@@ -1237,6 +1335,16 @@ if ($enable_native_pkcs11 eq "yes") {
         }
         $configdefh{"HAVE_PKCS11_GOST"} = 1;
     }
+    if ($use_aes eq "no") {
+        if ($verbose) {
+            print "no AES support in native PKCS#11\n";
+        }
+    } else {
+        if ($verbose) {
+            print "enabled AES support in native PKCS#11\n";
+        }
+        $use_aes = "pkcs11";
+    }
 }
 
 # enable-filter-aaaa
@@ -1259,6 +1367,11 @@ if ($enable_rpz_nsdname ne "no") {
     $configdefh{"ENABLE_RPZ_NSDNAME"} = 1;
 }
 
+# enable-sit
+if ($enable_sit ne "no") {
+    $configdefp{"ISC_PLATFORM_USESIT"} = 1;
+}
+
 # with-tests
 if ($use_tests eq "yes") {
     $configcond{"TESTS"} = 1;
@@ -1269,6 +1382,11 @@ if ($use_xtests eq "yes") {
     $configcond{"XTESTS"} = 1;
 }
 
+# with-samples
+if ($use_samples eq "yes") {
+    $configcond{"SAMPLES"} = 1;
+}
+
 # with-openssl
 if ($use_openssl eq "no") {
     if ($verbose) {
@@ -1436,6 +1554,7 @@ EOF
                 print "EVP_sha256 test failed: disabling EVP_sha256\n";
             }
             $use_ecdsa = "no";
+            $enable_openssl_hash = "no";
         } else {
             $configdefh{"HAVE_EVP_SHA256"} = 1;
         }
@@ -1445,6 +1564,7 @@ EOF
             print "disabling EVP_sha256\n";
         }
         $use_ecdsa = "no";
+        $enable_openssl_hash = "no";
     }
 
     if ($verbose) {
@@ -1467,6 +1587,7 @@ EOF
                 print "EVP_sha384 test failed: disabling EVP_sha384\n";
             }
             $use_ecdsa = "no";
+            $enable_openssl_hash = "no";
         } else {
             $configdefh{"HAVE_EVP_SHA384"} = 1;
         }
@@ -1476,6 +1597,7 @@ EOF
             print "disabling EVP_sha384\n";
         }
         $use_ecdsa = "no";
+        $enable_openssl_hash = "no";
     }
 
     if ($verbose) {
@@ -1625,6 +1747,131 @@ if ($gost_encoding eq "ans1") {
     die "Unrecognized GOST private key encoding: $gost_encoding\n";
 }
 
+# with-aes
+if ($use_openssl eq "no") {
+    if ($use_aes ne "pkcs11") {
+        $use_aes = "no";
+    }
+}
+if ($use_aes eq "auto") {
+    if ($verbose) {
+        print "checking for OpenSSL EVP AES support\n";
+    }
+    $use_aes = "evp";
+    open F, ">testevpaes.c" || die $!;
+    print F << 'EOF';
+#include <openssl/evp.h>
+
+int
+main(void)
+{
+        EVP_CIPHER *aes128, *aes192, *aes256;
+
+        aes128 = EVP_aes_128_ecb();
+        aes192 = EVP_aes_192_ecb();
+        aes256 = EVP_aes_256_ecb();
+        if (aes128 == NULL || aes192 == NULL || aes256 == NULL)
+                return (1);
+        return (0);
+}
+EOF
+    close F;
+    my $include = $configinc{"OPENSSL_INC"};
+    my $library = $configlib{"OPENSSL_LIB"};
+    $compret = `cl /nologo /MD /I "$include" testevpaes.c "$library"`;
+    if (grep { -f and -x } ".\\testevpaes.exe") {
+        `.\\testevpaes.exe`;
+        if ($? != 0) {
+            if ($verbose) {
+                print "EVP AES test failed: disabling EVP AES\n";
+            }
+            $use_aes = "auto";
+        }
+    } else {
+        if ($verbose) {
+            print "can't compile EVP AES test: $compret\n";
+            print "disabling EVP AES\n";
+        }
+        $use_aes = "auto";
+    }
+}
+
+if ($use_aes eq "auto") {
+    if ($verbose) {
+        print "checking for OpenSSL native AES support\n";
+    }
+    $use_aes = "native";
+    open F, ">testaes.c" || die $!;
+    print F << 'EOF';
+#include <openssl/aes.h>
+
+AES_KEY k;
+const unsigned char bufin[16];
+unsigned char bufout[16];
+
+int
+main(void)
+{
+        AES_encrypt(bufin, bufout, &k);
+        return (0);
+}
+EOF
+    close F;
+    my $include = $configinc{"OPENSSL_INC"};
+    my $library = $configlib{"OPENSSL_LIB"};
+    $compret = `cl /nologo /MD /I "$include" testaes.c "$library"`;
+    if (grep { -f and -x } ".\\testaes.exe") {
+        `.\\testaes.exe`;
+        if ($? != 0) {
+            if ($verbose) {
+                print "native AES test failed: disabling AES\n";
+            }
+            $use_aes = "no";
+        }
+    } else {
+        if ($verbose) {
+            print "can't compile native AES test: $compret\n";
+            print "disabling AES\n";
+        }
+        $use_aes = "no";
+    }
+}
+
+if ($use_aes eq "yes") {
+    $configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
+} elsif ($use_aes eq "evp") {
+    $configdefh{"HAVE_OPENSSL_EVP_AES"} = 1;
+    $use_aes = "yes";
+} elsif ($use_aes eq "native") {
+    $configdefh{"HAVE_OPENSSL_AES"} = 1;
+    $use_aes = "yes";
+} elsif ($use_aes eq "pkcs11") {
+    $use_aes = "yes";
+}
+
+if ($use_aes eq "yes") {
+    $configdefp{"ISC_PLATFORM_WANTAES"} = 1;
+    $configcond{"AES"} = 1;
+}
+
+# with-sit-alg
+if ($enable_sit ne "no") {
+    if ($sit_algorithm eq "aes") {
+        if ($use_aes ne "yes") {
+            $sit_algorithm = "sha256";
+        } else {
+            $configdefh{"AES_SIT"} = 1;
+        }
+    }
+    if ($sit_algorithm eq "sha1") {
+        $configdefh{"HMAC_SHA1_SIT"} = 1;
+    } elsif ($sit_algorithm eq "sha256") {
+        $configdefh{"HMAC_SHA256_SIT"} = 1;
+    } elsif ($sit_algorithm ne "aes") {
+        die "Unrecognized SIT algorithm: $sit_algorithm\n";
+    }
+}
+
 # enable-openssl-hash
 if ($enable_openssl_hash eq "yes") {
     if ($use_openssl eq "no") {
@@ -2340,10 +2587,11 @@ sub setupproject {
 sub makeversion {
     # List of directories with version files
 
-    my @dirlist = ("isc", "dns", "isccc", "isccfg", "lwres", "bind9");
+    my @dirlist = ("isc", "dns", "isccc", "isccfg", "lwres", "bind9", "irs");
     my %LibMacros = (
         "bind9"   => "LIBBIND9_EXPORTS",
         "dns"     => "LIBDNS_EXPORTS",
+        "irs"     => "LIBIRS_EXPORTS",
         "isc"     => "LIBISC_EXPORTS",
         "isccc"   => "LIBISCCC_EXPORTS",
         "isccfg"  => "LIBISCCFG_EXPORTS",
@@ -2659,7 +2907,6 @@ exit 0;
 #  --enable-native-pkcs11 supported
 #  --enable-openssl-version-check included without a way to disable it
 #  --enable-openssl-hash supported
-#  --enable-openssl-aes TODO
 #  --enable-threads included without a way to disable it
 #  --enable-backtrace backtrace included without a way to disable it
 #  --enable-symtable incompatible with DLLs (or libtool)
@@ -2671,14 +2918,15 @@ exit 0;
 #  --disable-rpz-nsip supported
 #  --disable-rpz-nsdname supported
 #  --enable-filter-aaaa supported
-#  --enable-sit included without a way to disable it (TO BE FIXED)
+#  --enable-sit supported
 #  --enable-full-report supported by verbose
 #  --with-python supported
 #  --with-openssl supported
 #  --with-pkcs11 supported
 #  --with-ecdsa supported
 #  --with-gost supported
-#  --with-sit-alg TODO (aes wired down)
+#  --with-aes supported
+#  --with-sit-alg supported
 #  --with-geoip supported
 #  --with-gssapi supported with MIT (K)erberos (f)or (W)indows
 #  --with-libxml2 supported
index d41ba5d938226db77402c9ee9a5c46964a971769..5223c97e0224f1a81844c497bb745eeff7f3b24d 100644 (file)
@@ -11,10 +11,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "..\bin\win32
                {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
                {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03}\r
                {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E}\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}\r
                {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0} = {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}\r
 @IF TESTS\r
                {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3}\r
 @END TESTS\r
+@IF SAMPLES\r
+               {F66D8B7E-721D-4602-99AD-820D19AD1313} = {F66D8B7E-721D-4602-99AD-820D19AD1313}\r
+               {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06} = {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}\r
+               {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE} = {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}\r
+               {05682E12-523F-4DAE-8E6D-ADFDBC308AFD} = {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}\r
+               {FF440E85-7450-439C-82EE-04C464512D0E} = {FF440E85-7450-439C-82EE-04C464512D0E}\r
+               {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD} = {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}\r
+@END SAMPLES\r
                {723C65DA-A96C-4BA3-A34E-44F11CA346F9} = {723C65DA-A96C-4BA3-A34E-44F11CA346F9}\r
                {7C8681A1-E3A8-470E-9EEF-16054D111A19} = {7C8681A1-E3A8-470E-9EEF-16054D111A19}\r
                {39721F26-8B80-4AA9-9826-2AEF7322C3D5} = {39721F26-8B80-4AA9-9826-2AEF7322C3D5}\r
@@ -22,6 +31,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "..\bin\win32
                {F938F9B8-D395-4A40-BEC7-0122D289C692} = {F938F9B8-D395-4A40-BEC7-0122D289C692}\r
                {BA1048A8-6961-4A20-BE12-08BE20611C9D} = {BA1048A8-6961-4A20-BE12-08BE20611C9D}\r
                {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5} = {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}\r
+               {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F} = {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}\r
                {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}\r
                {0BF11E21-168C-4CAA-B784-429D126BBAE5} = {0BF11E21-168C-4CAA-B784-429D126BBAE5}\r
                {205ED8A9-2E4C-41CC-9385-F3613402AA90} = {205ED8A9-2E4C-41CC-9385-F3613402AA90}\r
@@ -119,6 +129,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblwres", "..\lib\lwres\wi
                {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
        EndProjectSection\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libirs", "..\lib\irs\win32\libirs.vcxproj", "{A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+       EndProjectSection\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bindevt", "..\lib\win32\bindevt\bindevt.vcxproj", "{0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
@@ -134,6 +152,58 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtests", "..\lib\tests\wi
        EndProjectSection\r
 EndProject\r
 @END TESTS\r
+@IF SAMPLES\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolve", "..\lib\samples\win32\resolve.vcxproj", "{F66D8B7E-721D-4602-99AD-820D19AD1313}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "async", "..\lib\samples\win32\async.vcxproj", "{9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gai", "..\lib\samples\win32\gai.vcxproj", "{D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "update", "..\lib\samples\win32\update.vcxproj", "{05682E12-523F-4DAE-8E6D-ADFDBC308AFD}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "request", "..\lib\samples\win32\request.vcxproj", "{FF440E85-7450-439C-82EE-04C464512D0E}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+       EndProjectSection\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsprobe", "..\lib\samples\win32\nsprobe.vcxproj", "{CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+       EndProjectSection\r
+EndProject\r
+@END SAMPLES\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named", "..\bin\named\win32\named.vcxproj", "{723C65DA-A96C-4BA3-A34E-44F11CA346F9}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
@@ -206,6 +276,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nslookup", "..\bin\dig\win3
                {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA}\r
        EndProjectSection\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delve", "..\bin\delve\win32\delve.vcxproj", "{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
+               {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF}\r
+               {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A}\r
+               {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1}\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}\r
+       EndProjectSection\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dnssectool", "..\bin\dnssec\win32\dnssectool.vcxproj", "{2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1}\r
@@ -581,6 +660,10 @@ Global
                {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
                {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
                {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
                {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
                {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
                {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
@@ -591,6 +674,32 @@ Global
                {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
                {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
 @END TESTS\r
+@IF SAMPLES\r
+               {F66D8B7E-721D-4602-99AD-820D19AD1313}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {F66D8B7E-721D-4602-99AD-820D19AD1313}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {F66D8B7E-721D-4602-99AD-820D19AD1313}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {F66D8B7E-721D-4602-99AD-820D19AD1313}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {FF440E85-7450-439C-82EE-04C464512D0E}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {FF440E85-7450-439C-82EE-04C464512D0E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {FF440E85-7450-439C-82EE-04C464512D0E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {FF440E85-7450-439C-82EE-04C464512D0E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+@END SAMPLES\r
                {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
                {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
                {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
@@ -619,6 +728,10 @@ Global
                {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
                {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
                {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
+               {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
+               {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
+               {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
+               {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@\r
                {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@\r
                {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@\r
                {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@\r
index 9dfa624256f28634519d4bbce81c53ca9ecd75e2..d312465ecddf8fb98bb11b34274c610c47f4e712 100644 (file)
@@ -114,6 +114,27 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
+Project: "libirs"="..\..\lib\irs\win32\libirs.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
 Project: "bindevt"="..\..\lib\win32\bindevt\bindevt.dsp" - Package Owner=<4>\r
 \r
 Package=<5>\r
@@ -145,6 +166,140 @@ Package=<4>
 \r
 @END TESTS\r
 ###############################################################################\r
+@IF SAMPLES\r
+\r
+Project: "resolve"="..\..\lib\samples\win32\resolve.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libirs\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Project: "async"="..\..\lib\samples\win32\async.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Project: "gai"="..\..\lib\samples\win32\gai.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libirs\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Project: "update"="..\..\lib\samples\win32\update.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Project: "request"="..\..\lib\samples\win32\request.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
+Project: "nsprobe"="..\..\lib\samples\win32\nsprobe.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+}}}\r
+\r
+@END SAMPLES\r
+###############################################################################\r
 \r
 Project: "named"="..\..\bin\named\win32\named.dsp" - Package Owner=<4>\r
 \r
@@ -218,6 +373,30 @@ Package=<4>
 \r
 ###############################################################################\r
 \r
+Project: "delve"="..\..\bin\delve\win32\delve.dsp" - Package Owner=<4>\r
+\r
+Package=<5>\r
+{{{\r
+}}}\r
+\r
+Package=<4>\r
+{{{\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisc\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libdns\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libisccfg\r
+    End Project Dependency\r
+    Begin Project Dependency\r
+    Project_Dep_Name libirs\r
+    End Project Dependency\r
+}}}\r
+\r
+###############################################################################\r
+\r
 Project: "dighost"="..\..\bin\dig\win32\dighost.dsp" - Package Owner=<4>\r
 \r
 Package=<5>\r
index 1310a18a31a2e933d8e9b45c2d8f866d31a93ad0..772219ac5f868b4c60f0c0bd5c5bf2d1be10175e 100644 (file)
@@ -61,12 +61,27 @@ cd lwres\win32
 nmake /nologo -f liblwres.mak CFG="liblwres - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
 cd ..\..
 
+cd irs\win32
+nmake /nologo -f libirs.mak CFG="libirs - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+cd ..\..
+
 @IF TESTS
 cd tests\win32
 nmake /nologo -f libtests.mak CFG="libtests - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
 cd ..\..
 @END TESTS
 
+@IF SAMPLES
+cd samples\win32
+nmake /nologo -f resolve.mak CFG="resolve - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+nmake /nologo -f async.mak CFG="async - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+nmake /nologo -f gai.mak CFG="gai - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+nmake /nologo -f update.mak CFG="update - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+nmake /nologo -f request.mak CFG="request - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+nmake /nologo -f nsprobe.mak CFG="nsprobe - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+cd ..\..
+@END SAMPLES
+
 rem This is the DLL required for the event Viewer
 
 cd win32\bindevt
@@ -101,6 +116,10 @@ nmake /nologo /nologo -f host.mak CFG="host - @PLATFORM@ Release"  NO_EXTERNAL_D
 nmake /nologo -f nslookup.mak CFG="nslookup - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
 cd ..\..
 
+cd delve\win32
+nmake /nologo -f delve.mak CFG="delve - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
+cd ..\..
+
 cd nsupdate\win32
 nmake /nologo -f nsupdate.mak CFG="nsupdate - @PLATFORM@ Release"  NO_EXTERNAL_DEPS="1"
 cd ..\..
index 0512e0b5d3ff777c2d6e49004c7e9b81a3ee1bb9..41431ce562866aff1742d29198414e7f8e616e61 100644 (file)
@@ -56,6 +56,7 @@ copy ..\..\bin\named\named.html ..\..\Build\Release
 copy ..\..\bin\rndc\*.html ..\..\Build\Release
 copy ..\..\bin\confgen\*.html ..\..\Build\Release
 copy ..\..\bin\dig\*.html ..\..\Build\Release
+copy ..\..\bin\delve\*.html ..\..\Build\Release
 copy ..\..\bin\nsupdate\*.html ..\..\Build\Release
 copy ..\..\bin\check\*.html ..\..\Build\Release
 copy ..\..\bin\dnssec\dnssec-keygen.html ..\..\Build\Release