From: Evan Hunt Date: Thu, 27 Feb 2014 03:00:05 +0000 (-0800) Subject: [master] merge several interdependent fixes X-Git-Tag: v9.10.0b2~92 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=98922b2b2b024dcca25be7c220cf3b16b1e6c4b5;p=thirdparty%2Fbind9.git [master] merge several interdependent fixes 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] --- diff --git a/CHANGES b/CHANGES index 284020e2b40..f949607c231 100644 --- 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] diff --git a/bin/delve/delve.c b/bin/delve/delve.c index ff637452807..982d9700ff5 100644 --- a/bin/delve/delve.c +++ b/bin/delve/delve.c @@ -17,6 +17,7 @@ #include #include +#ifndef WIN32 #include #include #include @@ -25,11 +26,13 @@ #include -#include +#include +#endif + #include #include #include -#include +#include #include #include @@ -37,6 +40,9 @@ #include #include #include +#ifdef WIN32 +#include +#endif #include #include #include @@ -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 index 00000000000..624679792b0 --- /dev/null +++ b/bin/delve/win32/delve.dsp.in @@ -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 index 00000000000..79cda30f9b4 --- /dev/null +++ b/bin/delve/win32/delve.dsw @@ -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 index 00000000000..5ddda129129 --- /dev/null +++ b/bin/delve/win32/delve.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/bin/delve/win32/delve.vcxproj.filters.in b/bin/delve/win32/delve.vcxproj.filters.in new file mode 100644 index 00000000000..6e0337ec316 --- /dev/null +++ b/bin/delve/win32/delve.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..f8671c9d6e3 --- /dev/null +++ b/bin/delve/win32/delve.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F} + Win32Proj + delve + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@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) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@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) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\..\lib\isc\win32\$(Configuration);..\..\..\lib\dns\win32\$(Configuration);..\..\..\lib\isccfg\win32\$(Configuration);..\..\..\lib\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/bin/delve/win32/delve.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/bin/tests/system/sit/ns1/named.conf b/bin/tests/system/sit/ns1/named.conf index 4686a44d1a9..7987858d1b4 100644 --- a/bin/tests/system/sit/ns1/named.conf +++ b/bin/tests/system/sit/ns1/named.conf @@ -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; }; diff --git a/bin/win32/BINDInstall/BINDInstallDlg.cpp b/bin/win32/BINDInstall/BINDInstallDlg.cpp index 9a365c57abf..200bdf3bf5e 100644 --- a/bin/win32/BINDInstall/BINDInstallDlg.cpp +++ b/bin/win32/BINDInstall/BINDInstallDlg.cpp @@ -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}, diff --git a/config.h.in b/config.h.in index 4e86c9d2ab5..dd0f71b1076 100644 --- a/config.h.in +++ b/config.h.in @@ -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 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 diff --git a/config.h.win32 b/config.h.win32 index 97f3fd40da7..643b7f98c86 100644 --- a/config.h.win32 +++ b/config.h.win32 @@ -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) diff --git a/configure b/configure index 54c1c7c2626..926e7c36587 100755 --- 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 #include #include 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 +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" @@ -15616,104 +15787,106 @@ esac 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 diff --git a/configure.in b/configure.in index e5a030d7f06..8b5c7f060c7 100644 --- a/configure.in +++ b/configure.in @@ -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 #include #include int main() { @@ -1492,6 +1568,52 @@ int main() { *) ;; esac + + have_aes="no" + AC_MSG_CHECKING(for OpenSSL AES support) + AC_TRY_RUN([ +#include +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 diff --git a/lib/dns/client.c b/lib/dns/client.c index f37f6f36c00..3db8b93210d 100644 --- a/lib/dns/client.c +++ b/lib/dns/client.c @@ -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; diff --git a/lib/dns/lib.c b/lib/dns/lib.c index 6a1306d53b9..1c9adee2c4b 100644 --- a/lib/dns/lib.c +++ b/lib/dns/lib.c @@ -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); } diff --git a/lib/dns/win32/libdns.def.in b/lib/dns/win32/libdns.def.in index 09962358911..799e4dcabc1 100644 --- a/lib/dns/win32/libdns.def.in +++ b/lib/dns/win32/libdns.def.in @@ -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 diff --git a/lib/dns/win32/libdns.dsp.in b/lib/dns/win32/libdns.dsp.in index 9ab1265c253..f7e5a6b98ae 100644 --- a/lib/dns/win32/libdns.dsp.in +++ b/lib/dns/win32/libdns.dsp.in @@ -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 diff --git a/lib/dns/win32/libdns.mak.in b/lib/dns/win32/libdns.mak.in index 31d714d38e9..9b96feb07aa 100644 --- a/lib/dns/win32/libdns.mak.in +++ b/lib/dns/win32/libdns.mak.in @@ -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 diff --git a/lib/dns/win32/libdns.vcxproj.filters.in b/lib/dns/win32/libdns.vcxproj.filters.in index 0032264d13a..7a065da44c7 100644 --- a/lib/dns/win32/libdns.vcxproj.filters.in +++ b/lib/dns/win32/libdns.vcxproj.filters.in @@ -48,6 +48,9 @@ Library Source Files + + Library Source Files + Library Source Files @@ -81,6 +84,9 @@ Library Source Files + + Library Source Files + Library Source Files @@ -221,6 +227,9 @@ Library Source Files + + Library Source Files + Library Source Files @@ -350,6 +359,9 @@ Library Header Files + + Library Header Files + Library Header Files @@ -386,6 +398,9 @@ Library Header Files + + Library Header Files + Library Header Files @@ -553,6 +568,9 @@ Library Header Files + + Library Header Files + Library Header Files diff --git a/lib/dns/win32/libdns.vcxproj.in b/lib/dns/win32/libdns.vcxproj.in index 3e95116b211..f402d7466b4 100644 --- a/lib/dns/win32/libdns.vcxproj.in +++ b/lib/dns/win32/libdns.vcxproj.in @@ -113,6 +113,7 @@ + @@ -128,6 +129,7 @@ + @IF GEOIP @@ -197,6 +199,7 @@ + @@ -228,6 +231,7 @@ + @@ -240,6 +244,7 @@ + @@ -297,6 +302,7 @@ + diff --git a/lib/irs/gai_strerror.c b/lib/irs/gai_strerror.c index 2fe39416196..40e29940c7a 100644 --- a/lib/irs/gai_strerror.c +++ b/lib/irs/gai_strerror.c @@ -51,6 +51,8 @@ */ #include +#include + #include /*% Text of error messages. */ diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c index 24d35bf691d..a02705fdf31 100644 --- a/lib/irs/getaddrinfo.c +++ b/lib/irs/getaddrinfo.c @@ -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; diff --git a/lib/irs/resconf.c b/lib/irs/resconf.c index cb240079554..6b7085e469b 100644 --- a/lib/irs/resconf.c +++ b/lib/irs/resconf.c @@ -41,12 +41,14 @@ #include +#ifndef WIN32 #include #include +#include +#endif #include #include -#include #include #include #include @@ -57,6 +59,7 @@ #include #include +#include #include #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 index 00000000000..902bf5cd4a4 --- /dev/null +++ b/lib/irs/win32/DLLMain.c @@ -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 +#include + +/* + * 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 index 00000000000..08e54c5762a --- /dev/null +++ b/lib/irs/win32/Makefile.in @@ -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 index 00000000000..39abdc44952 --- /dev/null +++ b/lib/irs/win32/include/Makefile.in @@ -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 index 00000000000..645d800b2bf --- /dev/null +++ b/lib/irs/win32/include/irs/Makefile.in @@ -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 index 00000000000..2cae3b085a3 --- /dev/null +++ b/lib/irs/win32/libirs.def @@ -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 index 00000000000..3f6d1a73446 --- /dev/null +++ b/lib/irs/win32/libirs.dsp.in @@ -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 index 00000000000..16fbe9526dd --- /dev/null +++ b/lib/irs/win32/libirs.dsw @@ -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 index 00000000000..4894057cb7e --- /dev/null +++ b/lib/irs/win32/libirs.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/irs/win32/libirs.vcxproj.filters.in b/lib/irs/win32/libirs.vcxproj.filters.in new file mode 100644 index 00000000000..5ce7a2b6a46 --- /dev/null +++ b/lib/irs/win32/libirs.vcxproj.filters.in @@ -0,0 +1,66 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + \ 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 index 00000000000..2740bcd86bc --- /dev/null +++ b/lib/irs/win32/libirs.vcxproj.in @@ -0,0 +1,130 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} + Win32Proj + libirs + + + + DynamicLibrary + true + MultiByte + + + DynamicLibrary + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;USE_MD5;@CRYPTO@_DEBUG;_WINDOWS;_USRDLL;LIBIRS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) + .\;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\isccfg\include;..\..\dns\include;@LIBXML2_INC@@OPENSSL_INC@@GEOIP_INC@%(AdditionalIncludeDirectories) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + + + Console + true + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + .\libirs.def + .\$(Configuration)\$(ProjectName).lib + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;USE_MD5;@CRYPTO@NDEBUG;_WINDOWS;_USRDLL;LIBIRS_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) + .\;..\..\..\;include;..\include;..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\isccfg\include;..\..\dns\include;@LIBXML2_INC@@OPENSSL_INC@@GEOIP_INC@%(AdditionalIncludeDirectories) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + + + Console + false + true + true + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + .\libirs.def + .\$(Configuration)\$(ProjectName).lib + Default + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + + + + + + + + + + + + + + + + + + + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/irs/win32/libirs.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/lib/irs/win32/version.c b/lib/irs/win32/version.c new file mode 100644 index 00000000000..6507e1a4127 --- /dev/null +++ b/lib/irs/win32/version.c @@ -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 + +#include + +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; diff --git a/lib/isc/aes.c b/lib/isc/aes.c index 4554858ad32..7c594774460 100644 --- a/lib/isc/aes.c +++ b/lib/isc/aes.c @@ -27,9 +27,59 @@ #include #include -#ifdef ISC_PLATFORM_OPENSSLAES +#if HAVE_OPENSSL_EVP_AES -#ifndef EVP_AES +#include + +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 @@ -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 +#elif PKCS11CRYPTO + +#include +#include + +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 diff --git a/lib/isc/app_api.c b/lib/isc/app_api.c index 046a3c72c73..e8f2b31f180 100644 --- a/lib/isc/app_api.c +++ b/lib/isc/app_api.c @@ -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 diff --git a/lib/isc/include/isc/aes.h b/lib/isc/include/isc/aes.h index bcee74695eb..9b424268e22 100644 --- a/lib/isc/include/isc/aes.h +++ b/lib/isc/include/isc/aes.h @@ -25,13 +25,13 @@ #include #include -#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 */ diff --git a/lib/isc/include/isc/app.h b/lib/isc/include/isc/app.h index e1d74d6f9f5..a30326e599a 100644 --- a/lib/isc/include/isc/app.h +++ b/lib/isc/include/isc/app.h @@ -89,18 +89,6 @@ #include #include -#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 ***/ diff --git a/lib/isc/include/isc/platform.h.in b/lib/isc/include/isc/platform.h.in index a26f12b47ab..63897178f97 100644 --- a/lib/isc/include/isc/platform.h.in +++ b/lib/isc/include/isc/platform.h.in @@ -312,9 +312,9 @@ @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. diff --git a/lib/isc/include/pk11/pk11.h b/lib/isc/include/pk11/pk11.h index 2b4de5e0870..535a7cb7d95 100644 --- a/lib/isc/include/pk11/pk11.h +++ b/lib/isc/include/pk11/pk11.h @@ -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); diff --git a/lib/isc/lib.c b/lib/isc/lib.c index cdf930e34cd..776388d2a42 100644 --- a/lib/isc/lib.c +++ b/lib/isc/lib.c @@ -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(®ister_once, do_register) == ISC_R_SUCCESS); } - -#endif diff --git a/lib/isc/pk11.c b/lib/isc/pk11.c index f8ea7aeda1f..7ea4353654a 100644 --- a/lib/isc/pk11.c +++ b/lib/isc/pk11.c @@ -116,6 +116,7 @@ #include #include #include +#include #include #include #include @@ -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; diff --git a/lib/isc/socket_api.c b/lib/isc/socket_api.c index 4cec50f9217..117d1c6c7c3 100644 --- a/lib/isc/socket_api.c +++ b/lib/isc/socket_api.c @@ -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 diff --git a/lib/isc/tests/Makefile.in b/lib/isc/tests/Makefile.in index 997397d30db..1233420b75d 100644 --- a/lib/isc/tests/Makefile.in +++ b/lib/isc/tests/Makefile.in @@ -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@ diff --git a/lib/isc/tests/aes_test.c b/lib/isc/tests/aes_test.c index 29c278e66a0..f5eb76a5e25 100644 --- a/lib/isc/tests/aes_test.c +++ b/lib/isc/tests/aes_test.c @@ -33,7 +33,7 @@ #include #include -#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); diff --git a/lib/isc/unix/pk11_api.c b/lib/isc/unix/pk11_api.c index 75c6b3b6f6c..9ccb959cb5e 100644 --- a/lib/isc/unix/pk11_api.c +++ b/lib/isc/unix/pk11_api.c @@ -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; diff --git a/lib/isc/win32/app.c b/lib/isc/win32/app.c index 282e9b79ce7..713a9a529a8 100644 --- a/lib/isc/win32/app.c +++ b/lib/isc/win32/app.c @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -40,23 +41,48 @@ #include #include -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" diff --git a/lib/isc/win32/include/isc/platform.h.in b/lib/isc/win32/include/isc/platform.h.in index 05ef7040c42..9e56cc9336a 100644 --- a/lib/isc/win32/include/isc/platform.h.in +++ b/lib/isc/win32/include/isc/platform.h.in @@ -79,6 +79,11 @@ */ @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. @@ -110,9 +115,9 @@ @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 diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in index 03d2f90b3b8..f631eed0258 100644 --- a/lib/isc/win32/libisc.def.in +++ b/lib/isc/win32/libisc.def.in @@ -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 diff --git a/lib/isc/win32/libisc.dsp.in b/lib/isc/win32/libisc.dsp.in index 80f17c41e0e..81b7647f63b 100644 --- a/lib/isc/win32/libisc.dsp.in +++ b/lib/isc/win32/libisc.dsp.in @@ -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 diff --git a/lib/isc/win32/libisc.mak.in b/lib/isc/win32/libisc.mak.in index 235fafe525f..ca3ff6c2d13 100644 --- a/lib/isc/win32/libisc.mak.in +++ b/lib/isc/win32/libisc.mak.in @@ -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" diff --git a/lib/isc/win32/libisc.vcxproj.filters.in b/lib/isc/win32/libisc.vcxproj.filters.in index 619a62f77d3..16b49a236c8 100644 --- a/lib/isc/win32/libisc.vcxproj.filters.in +++ b/lib/isc/win32/libisc.vcxproj.filters.in @@ -26,6 +26,11 @@ +@IF AES + + Library Header Files + +@END AES Library Header Files @@ -452,6 +457,11 @@ Win32 Source Files @END PKCS11 +@IF AES + + Win32 Source Files + +@END AES Library Source Files diff --git a/lib/isc/win32/libisc.vcxproj.in b/lib/isc/win32/libisc.vcxproj.in index 1e01ff2b41c..789515350ba 100644 --- a/lib/isc/win32/libisc.vcxproj.in +++ b/lib/isc/win32/libisc.vcxproj.in @@ -182,6 +182,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 @@ -261,6 +262,9 @@ copy /Y @VCREDIST_PATH@ ..\Build\Release\ +@IF AES + +@END AES @@ -382,6 +386,9 @@ copy /Y @VCREDIST_PATH@ ..\Build\Release\ +@IF AES + +@END AES diff --git a/lib/isc/win32/pk11_api.c b/lib/isc/win32/pk11_api.c index 07286d36c46..31c1fa60520 100644 --- a/lib/isc/win32/pk11_api.c +++ b/lib/isc/win32/pk11_api.c @@ -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) diff --git a/lib/isc/win32/socket.c b/lib/isc/win32/socket.c index dc7a9ccf982..69e852a87e4 100644 --- a/lib/isc/win32/socket.c +++ b/lib/isc/win32/socket.c @@ -50,6 +50,7 @@ #include #include +#include #include #include #include @@ -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); +} diff --git a/lib/isccfg/win32/libisccfg.dsp.in b/lib/isccfg/win32/libisccfg.dsp.in index 1a94d761664..869fb85a2fe 100644 --- a/lib/isccfg/win32/libisccfg.dsp.in +++ b/lib/isccfg/win32/libisccfg.dsp.in @@ -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 diff --git a/lib/isccfg/win32/libisccfg.mak.in b/lib/isccfg/win32/libisccfg.mak.in index a53838aecae..aa24b275c91 100644 --- a/lib/isccfg/win32/libisccfg.mak.in +++ b/lib/isccfg/win32/libisccfg.mak.in @@ -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 diff --git a/lib/isccfg/win32/libisccfg.vcxproj.filters.in b/lib/isccfg/win32/libisccfg.vcxproj.filters.in index b1abea489b3..4b610c5659f 100644 --- a/lib/isccfg/win32/libisccfg.vcxproj.filters.in +++ b/lib/isccfg/win32/libisccfg.vcxproj.filters.in @@ -27,6 +27,9 @@ Source Files + + Source Files + Source Files @@ -41,6 +44,9 @@ Header Files + + Header Files + Header Files diff --git a/lib/isccfg/win32/libisccfg.vcxproj.in b/lib/isccfg/win32/libisccfg.vcxproj.in index 3c3a03c0922..3e2ffe5f295 100644 --- a/lib/isccfg/win32/libisccfg.vcxproj.in +++ b/lib/isccfg/win32/libisccfg.vcxproj.in @@ -108,6 +108,7 @@ + @@ -116,6 +117,7 @@ + diff --git a/lib/samples/nsprobe.c b/lib/samples/nsprobe.c index 795b1ca4fb4..d38d96f3460 100644 --- a/lib/samples/nsprobe.c +++ b/lib/samples/nsprobe.c @@ -18,17 +18,21 @@ #include +#ifndef WIN32 #include #include +#include +#include +#endif + #include #include #include -#include -#include #include #include +#include #include #include #include @@ -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); diff --git a/lib/samples/resolve.c b/lib/samples/resolve.c index 5a487584c95..c186febb1cf 100644 --- a/lib/samples/resolve.c +++ b/lib/samples/resolve.c @@ -16,6 +16,7 @@ #include +#ifndef WIN32 #include #include @@ -23,14 +24,17 @@ #include +#include #include +#endif + #include #include #include -#include #include #include +#include #include #include #include @@ -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(); diff --git a/lib/samples/sample-async.c b/lib/samples/sample-async.c index a70dd4741ed..81208a77f06 100644 --- a/lib/samples/sample-async.c +++ b/lib/samples/sample-async.c @@ -18,6 +18,7 @@ #include +#ifndef WIN32 #include #include @@ -26,12 +27,15 @@ #include #include +#endif + #include #include #include #include #include +#include #include #include #include @@ -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(); diff --git a/lib/samples/sample-gai.c b/lib/samples/sample-gai.c index 243d07a2f97..762bd7e09a1 100644 --- a/lib/samples/sample-gai.c +++ b/lib/samples/sample-gai.c @@ -18,8 +18,7 @@ #include -#include -#include +#include #include @@ -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) { diff --git a/lib/samples/sample-request.c b/lib/samples/sample-request.c index 8d36a2cebde..34964c7d7e9 100644 --- a/lib/samples/sample-request.c +++ b/lib/samples/sample-request.c @@ -18,6 +18,7 @@ #include +#ifndef WIN32 #include #include @@ -25,14 +26,17 @@ #include +#include #include +#endif + #include #include #include -#include #include #include +#include #include #include #include @@ -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 */ diff --git a/lib/samples/sample-update.c b/lib/samples/sample-update.c index f7e7dcc765e..0fb4bb31f4b 100644 --- a/lib/samples/sample-update.c +++ b/lib/samples/sample-update.c @@ -18,6 +18,7 @@ #include +#ifndef WIN32 #include #include @@ -25,14 +26,17 @@ #include +#include #include +#endif + #include #include #include #include -#include #include +#include #include #include #include @@ -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 index 00000000000..96170567918 --- /dev/null +++ b/lib/samples/win32/async.dsp.in @@ -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 index 00000000000..65da1ffee4a --- /dev/null +++ b/lib/samples/win32/async.dsw @@ -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 index 00000000000..aacd7614036 --- /dev/null +++ b/lib/samples/win32/async.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/async.vcxproj.filters.in b/lib/samples/win32/async.vcxproj.filters.in new file mode 100644 index 00000000000..f425f856c3d --- /dev/null +++ b/lib/samples/win32/async.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..0e15f675baa --- /dev/null +++ b/lib/samples/win32/async.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06} + Win32Proj + async + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/async.vcxproj.user @@ -0,0 +1,3 @@ + + + \ 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 index 00000000000..9282955cb2e --- /dev/null +++ b/lib/samples/win32/gai.dsp.in @@ -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 index 00000000000..7dfa9c2eac7 --- /dev/null +++ b/lib/samples/win32/gai.dsw @@ -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 index 00000000000..39cd2fbeef5 --- /dev/null +++ b/lib/samples/win32/gai.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/gai.vcxproj.filters.in b/lib/samples/win32/gai.vcxproj.filters.in new file mode 100644 index 00000000000..30b1864f8ac --- /dev/null +++ b/lib/samples/win32/gai.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..7675c8679a3 --- /dev/null +++ b/lib/samples/win32/gai.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE} + Win32Proj + gai + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/gai.vcxproj.user @@ -0,0 +1,3 @@ + + + \ 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 index 00000000000..2b29c972eab --- /dev/null +++ b/lib/samples/win32/nsprobe.dsp.in @@ -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 index 00000000000..cef2de1e5f3 --- /dev/null +++ b/lib/samples/win32/nsprobe.dsw @@ -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 index 00000000000..6bd4a0a339d --- /dev/null +++ b/lib/samples/win32/nsprobe.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/nsprobe.vcxproj.filters.in b/lib/samples/win32/nsprobe.vcxproj.filters.in new file mode 100644 index 00000000000..0c43dfd5992 --- /dev/null +++ b/lib/samples/win32/nsprobe.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..418a6917458 --- /dev/null +++ b/lib/samples/win32/nsprobe.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD} + Win32Proj + nsprobe + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/nsprobe.vcxproj.user @@ -0,0 +1,3 @@ + + + \ 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 index 00000000000..aca8eb26bae --- /dev/null +++ b/lib/samples/win32/request.dsp.in @@ -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 index 00000000000..9528505b836 --- /dev/null +++ b/lib/samples/win32/request.dsw @@ -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 index 00000000000..9a960eac0cd --- /dev/null +++ b/lib/samples/win32/request.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/request.vcxproj.filters.in b/lib/samples/win32/request.vcxproj.filters.in new file mode 100644 index 00000000000..0ddc9df5598 --- /dev/null +++ b/lib/samples/win32/request.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..42be79ff64d --- /dev/null +++ b/lib/samples/win32/request.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {FF440E85-7450-439C-82EE-04C464512D0E} + Win32Proj + request + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/request.vcxproj.user @@ -0,0 +1,3 @@ + + + \ 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 index 00000000000..0c7146417ee --- /dev/null +++ b/lib/samples/win32/resolve.dsp.in @@ -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 index 00000000000..222580a6627 --- /dev/null +++ b/lib/samples/win32/resolve.dsw @@ -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 index 00000000000..f6898d4b1b3 --- /dev/null +++ b/lib/samples/win32/resolve.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/resolve.vcxproj.filters.in b/lib/samples/win32/resolve.vcxproj.filters.in new file mode 100644 index 00000000000..e866b849756 --- /dev/null +++ b/lib/samples/win32/resolve.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..96b79840721 --- /dev/null +++ b/lib/samples/win32/resolve.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {F66D8B7E-721D-4602-99AD-820D19AD1313} + Win32Proj + resolve + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;..\..\irs\win32\include;..\..\irs\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);..\..\irs\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;libirs.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/resolve.vcxproj.user @@ -0,0 +1,3 @@ + + + \ 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 index 00000000000..583e3be06fa --- /dev/null +++ b/lib/samples/win32/update.dsp.in @@ -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 index 00000000000..829e2e84380 --- /dev/null +++ b/lib/samples/win32/update.dsw @@ -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 index 00000000000..345ecf8e8df --- /dev/null +++ b/lib/samples/win32/update.mak.in @@ -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 +1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest" +<< KEEP + +$(_VC_MANIFEST_BASENAME).auto.manifest : + type <<$@ + + + +<< KEEP diff --git a/lib/samples/win32/update.vcxproj.filters.in b/lib/samples/win32/update.vcxproj.filters.in new file mode 100644 index 00000000000..02884086527 --- /dev/null +++ b/lib/samples/win32/update.vcxproj.filters.in @@ -0,0 +1,22 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Source Files + + + \ 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 index 00000000000..8cf9a54563f --- /dev/null +++ b/lib/samples/win32/update.vcxproj.in @@ -0,0 +1,108 @@ + + + + + Debug + @PLATFORM@ + + + Release + @PLATFORM@ + + + + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD} + Win32Proj + update + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + false + ..\..\..\Build\$(Configuration)\ + .\$(Configuration)\ + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + false + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + true + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + @INTRINSIC@ + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + OnlyExplicitInline + false + true + .\$(Configuration)\$(TargetName).pch + .\$(Configuration)\ + .\$(Configuration)\ + $(OutDir)$(TargetName).pdb + ..\..\..\;@LIBXML2_INC@..\..\isc\win32;..\..\isc\win32\include;..\..\isc\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + + + Console + false + true + true + ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) + Default + ..\..\isc\win32\$(Configuration);..\..\dns\win32\$(Configuration);..\..\isccfg\win32\$(Configuration);%(AdditionalLibraryDirectories) + libisc.lib;libdns.lib;libisccfg.lib;ws2_32.lib;%(AdditionalDependencies) + + + + + + + + + \ 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 index 00000000000..695b5c78b91 --- /dev/null +++ b/lib/samples/win32/update.vcxproj.user @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/util/copyrights b/util/copyrights index 87bfc5d4dd5..54089f8fb31 100644 --- a/util/copyrights +++ b/util/copyrights @@ -3284,6 +3284,20 @@ ./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 @@ -3812,6 +3826,42 @@ ./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 diff --git a/win32utils/Configure b/win32utils/Configure index 78271edc09d..ba42e24bf91 100644 --- a/win32utils/Configure +++ b/win32utils/Configure @@ -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 + +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 + +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 diff --git a/win32utils/bind9.sln.in b/win32utils/bind9.sln.in index d41ba5d9382..5223c97e022 100644 --- a/win32utils/bind9.sln.in +++ b/win32utils/bind9.sln.in @@ -11,10 +11,19 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "..\bin\win32 {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} {E741C10B-B075-4206-9596-46765B665E03} = {E741C10B-B075-4206-9596-46765B665E03} {EBDB30A3-E8EB-4E1D-915E-06720600A84E} = {EBDB30A3-E8EB-4E1D-915E-06720600A84E} + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0} = {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0} @IF TESTS {F6F08940-7597-4FEE-9CE0-E09A009C45A3} = {F6F08940-7597-4FEE-9CE0-E09A009C45A3} @END TESTS +@IF SAMPLES + {F66D8B7E-721D-4602-99AD-820D19AD1313} = {F66D8B7E-721D-4602-99AD-820D19AD1313} + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06} = {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06} + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE} = {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE} + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD} = {05682E12-523F-4DAE-8E6D-ADFDBC308AFD} + {FF440E85-7450-439C-82EE-04C464512D0E} = {FF440E85-7450-439C-82EE-04C464512D0E} + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD} = {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD} +@END SAMPLES {723C65DA-A96C-4BA3-A34E-44F11CA346F9} = {723C65DA-A96C-4BA3-A34E-44F11CA346F9} {7C8681A1-E3A8-470E-9EEF-16054D111A19} = {7C8681A1-E3A8-470E-9EEF-16054D111A19} {39721F26-8B80-4AA9-9826-2AEF7322C3D5} = {39721F26-8B80-4AA9-9826-2AEF7322C3D5} @@ -22,6 +31,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BINDInstall", "..\bin\win32 {F938F9B8-D395-4A40-BEC7-0122D289C692} = {F938F9B8-D395-4A40-BEC7-0122D289C692} {BA1048A8-6961-4A20-BE12-08BE20611C9D} = {BA1048A8-6961-4A20-BE12-08BE20611C9D} {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5} = {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5} + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F} = {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F} {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} = {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70} {0BF11E21-168C-4CAA-B784-429D126BBAE5} = {0BF11E21-168C-4CAA-B784-429D126BBAE5} {205ED8A9-2E4C-41CC-9385-F3613402AA90} = {205ED8A9-2E4C-41CC-9385-F3613402AA90} @@ -119,6 +129,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblwres", "..\lib\lwres\wi {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libirs", "..\lib\irs\win32\libirs.vcxproj", "{A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "bindevt", "..\lib\win32\bindevt\bindevt.vcxproj", "{0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}" ProjectSection(ProjectDependencies) = postProject {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} @@ -134,6 +152,58 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtests", "..\lib\tests\wi EndProjectSection EndProject @END TESTS +@IF SAMPLES +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "resolve", "..\lib\samples\win32\resolve.vcxproj", "{F66D8B7E-721D-4602-99AD-820D19AD1313}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "async", "..\lib\samples\win32\async.vcxproj", "{9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gai", "..\lib\samples\win32\gai.vcxproj", "{D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "update", "..\lib\samples\win32\update.vcxproj", "{05682E12-523F-4DAE-8E6D-ADFDBC308AFD}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "request", "..\lib\samples\win32\request.vcxproj", "{FF440E85-7450-439C-82EE-04C464512D0E}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + EndProjectSection +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nsprobe", "..\lib\samples\win32\nsprobe.vcxproj", "{CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + EndProjectSection +EndProject +@END SAMPLES Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "named", "..\bin\named\win32\named.vcxproj", "{723C65DA-A96C-4BA3-A34E-44F11CA346F9}" ProjectSection(ProjectDependencies) = postProject {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} @@ -206,6 +276,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "nslookup", "..\bin\dig\win3 {140DE800-E552-43CC-B0C7-A33A92E368CA} = {140DE800-E552-43CC-B0C7-A33A92E368CA} EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "delve", "..\bin\delve\win32\delve.vcxproj", "{BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}" + ProjectSection(ProjectDependencies) = postProject + {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} + {3840E563-D180-4761-AA9C-E6155F02EAFF} = {3840E563-D180-4761-AA9C-E6155F02EAFF} + {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} = {5FEBFD4E-CCB0-48B9-B733-E15EEB85C16A} + {B2DFA58C-6347-478E-81E8-01E06999D4F1} = {B2DFA58C-6347-478E-81E8-01E06999D4F1} + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} = {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dnssectool", "..\bin\dnssec\win32\dnssectool.vcxproj", "{2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}" ProjectSection(ProjectDependencies) = postProject {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} = {A3F71D12-F38A-4C77-8D87-8E8854CA74A1} @@ -581,6 +660,10 @@ Global {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ {EBDB30A3-E8EB-4E1D-915E-06720600A84E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {A4F29CEB-7644-4A7F-BE9E-02B6A90E4919}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ {0D745CD9-FC3B-49DC-99BE-1E6DF85593F0}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ @@ -591,6 +674,32 @@ Global {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ {F6F08940-7597-4FEE-9CE0-E09A009C45A3}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ @END TESTS +@IF SAMPLES + {F66D8B7E-721D-4602-99AD-820D19AD1313}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {F66D8B7E-721D-4602-99AD-820D19AD1313}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {F66D8B7E-721D-4602-99AD-820D19AD1313}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {F66D8B7E-721D-4602-99AD-820D19AD1313}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {9FC33CA3-CE4A-4EDF-BA99-EECA4B81AD06}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {D42B8670-8DF6-4D90-90F7-DB5FB845AFAE}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {05682E12-523F-4DAE-8E6D-ADFDBC308AFD}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {FF440E85-7450-439C-82EE-04C464512D0E}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {FF440E85-7450-439C-82EE-04C464512D0E}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {FF440E85-7450-439C-82EE-04C464512D0E}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {FF440E85-7450-439C-82EE-04C464512D0E}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {CB2A29F6-E73B-40AB-8AC4-2C1AAE7280BD}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ +@END SAMPLES {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ {723C65DA-A96C-4BA3-A34E-44F11CA346F9}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ @@ -619,6 +728,10 @@ Global {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ {C15A6E1A-94CE-4686-99F9-6BC5FD623EB5}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ + {BE172EFE-C1DC-4812-BFB9-8C5F8ADB7E9F}.Release|@PLATFORM@.Build.0 = Release|@PLATFORM@ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.ActiveCfg = Debug|@PLATFORM@ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Debug|@PLATFORM@.Build.0 = Debug|@PLATFORM@ {2CB7DC75-023B-4AA3-AF3A-AE5046A4EE70}.Release|@PLATFORM@.ActiveCfg = Release|@PLATFORM@ diff --git a/win32utils/legacy/BINDBuild.dsw.in b/win32utils/legacy/BINDBuild.dsw.in index 9dfa624256f..d312465ecdd 100644 --- a/win32utils/legacy/BINDBuild.dsw.in +++ b/win32utils/legacy/BINDBuild.dsw.in @@ -114,6 +114,27 @@ Package=<4> ############################################################################### +Project: "libirs"="..\..\lib\irs\win32\libirs.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency +}}} + +############################################################################### + Project: "bindevt"="..\..\lib\win32\bindevt\bindevt.dsp" - Package Owner=<4> Package=<5> @@ -145,6 +166,140 @@ Package=<4> @END TESTS ############################################################################### +@IF SAMPLES + +Project: "resolve"="..\..\lib\samples\win32\resolve.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libirs + End Project Dependency +}}} + +############################################################################### + +Project: "async"="..\..\lib\samples\win32\async.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency +}}} + +############################################################################### + +Project: "gai"="..\..\lib\samples\win32\gai.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libirs + End Project Dependency +}}} + +############################################################################### + +Project: "update"="..\..\lib\samples\win32\update.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency +}}} + +############################################################################### + +Project: "request"="..\..\lib\samples\win32\request.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency +}}} + +############################################################################### + +Project: "nsprobe"="..\..\lib\samples\win32\nsprobe.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency +}}} + +@END SAMPLES +############################################################################### Project: "named"="..\..\bin\named\win32\named.dsp" - Package Owner=<4> @@ -218,6 +373,30 @@ Package=<4> ############################################################################### +Project: "delve"="..\..\bin\delve\win32\delve.dsp" - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ + Begin Project Dependency + Project_Dep_Name libisc + End Project Dependency + Begin Project Dependency + Project_Dep_Name libdns + End Project Dependency + Begin Project Dependency + Project_Dep_Name libisccfg + End Project Dependency + Begin Project Dependency + Project_Dep_Name libirs + End Project Dependency +}}} + +############################################################################### + Project: "dighost"="..\..\bin\dig\win32\dighost.dsp" - Package Owner=<4> Package=<5> diff --git a/win32utils/legacy/BuildAll.bat.in b/win32utils/legacy/BuildAll.bat.in index 1310a18a31a..772219ac5f8 100644 --- a/win32utils/legacy/BuildAll.bat.in +++ b/win32utils/legacy/BuildAll.bat.in @@ -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 ..\.. diff --git a/win32utils/legacy/BuildSetup.bat.in b/win32utils/legacy/BuildSetup.bat.in index 0512e0b5d3f..41431ce5628 100644 --- a/win32utils/legacy/BuildSetup.bat.in +++ b/win32utils/legacy/BuildSetup.bat.in @@ -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