diff --git a/bin/named/win32/named.dsp.in b/bin/named/win32/named.dsp.in index 14cace436e..76f97a63dc 100644 --- a/bin/named/win32/named.dsp.in +++ b/bin/named/win32/named.dsp.in @@ -294,6 +294,10 @@ SOURCE=..\include\named\query.h # End Source File # Begin Source File +SOURCE=..\include\named\seccomp.h +# End Source File +# Begin Source File + SOURCE=..\include\named\server.h # End Source File # Begin Source File diff --git a/bin/named/win32/named.vcxproj.filters.in b/bin/named/win32/named.vcxproj.filters.in index e7d65c5970..8cc6a7b21f 100644 --- a/bin/named/win32/named.vcxproj.filters.in +++ b/bin/named/win32/named.vcxproj.filters.in @@ -177,6 +177,9 @@ Header Files + + Header Files + Header Files diff --git a/bin/named/win32/named.vcxproj.in b/bin/named/win32/named.vcxproj.in index 605fbd7b39..d03288fd8c 100644 --- a/bin/named/win32/named.vcxproj.in +++ b/bin/named/win32/named.vcxproj.in @@ -156,6 +156,7 @@ + diff --git a/config.h.win32 b/config.h.win32 index 84cc06a120..412931bc81 100644 --- a/config.h.win32 +++ b/config.h.win32 @@ -358,14 +358,14 @@ typedef __int64 off_t; /* HMAC_*() return ints */ @HMAC_RETURN_INT@ -/* Use AES for Source Identity Token generation */ -@AES_SIT@ +/* Use AES for Client Cookie generation */ +@AES_CC@ -/* Use HMAC-SHA1 for Source Identity Token generation */ -@HMAC_SHA1_SIT@ +/* Use HMAC-SHA1 for Client Cookie generation */ +@HMAC_SHA1_CC@ -/* Use HMAC-SHA256 for Source Identity Token generation */ -@HMAC_SHA256_SIT@ +/* Use HMAC-SHA256 for Client Cookie generation */ +@HMAC_SHA256_CC@ /* Define to 1 if you have the `readline' function. */ @HAVE_READLINE@ @@ -382,6 +382,9 @@ typedef __int64 off_t; /* Build with GeoIP Country IPv6 support */ @HAVE_GEOIP_V6@ +/* Define if zlib was found */ +@HAVE_ZLIB@ + /* Define to enable rpz-nsdname rules. */ @ENABLE_RPZ_NSDNAME@ diff --git a/lib/bind9/win32/libbind9.dsp.in b/lib/bind9/win32/libbind9.dsp.in index f9387593df..a1337bd28d 100644 --- a/lib/bind9/win32/libbind9.dsp.in +++ b/lib/bind9/win32/libbind9.dsp.in @@ -118,6 +118,10 @@ SOURCE=..\include\bind9\check.h # End Source File # Begin Source File +SOURCE=..\include\bind9\getaddresses.h +# End Source File +# Begin Source File + SOURCE=..\include\bind9\version.h # End Source File # End Group diff --git a/lib/bind9/win32/libbind9.vcxproj.filters.in b/lib/bind9/win32/libbind9.vcxproj.filters.in index d90db87746..4e283308b7 100644 --- a/lib/bind9/win32/libbind9.vcxproj.filters.in +++ b/lib/bind9/win32/libbind9.vcxproj.filters.in @@ -38,5 +38,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/lib/bind9/win32/libbind9.vcxproj.in b/lib/bind9/win32/libbind9.vcxproj.in index 1651373298..8c1819ddcf 100644 --- a/lib/bind9/win32/libbind9.vcxproj.in +++ b/lib/bind9/win32/libbind9.vcxproj.in @@ -115,6 +115,7 @@ + diff --git a/lib/dns/dyndb.c b/lib/dns/dyndb.c index 03b35a6712..0034f5a4a2 100644 --- a/lib/dns/dyndb.c +++ b/lib/dns/dyndb.c @@ -17,6 +17,12 @@ #include +#if HAVE_DLFCN_H +#include +#elif _WIN32 +#include +#endif + #include #include #include @@ -35,10 +41,6 @@ #include -#if HAVE_DLFCN_H -#include -#endif - #define CHECK(op) \ do { result = (op); \ if (result != ISC_R_SUCCESS) goto cleanup; \ @@ -213,7 +215,122 @@ unload_library(dyndb_implementation_t **impp) { *impp = NULL; } -#else /* HAVE_DLFCN_H */ +#elif _WIN32 +static isc_result_t +load_symbol(HMODULE handle, const char *filename, + const char *symbol_name, void **symbolp) +{ + void *symbol; + + REQUIRE(handle != NULL); + REQUIRE(symbolp != NULL && *symbolp == NULL); + + symbol = GetProcAddress(handle, symbol_name); + if (symbol == NULL) { + int errstatus = GetLastError(); + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, + DNS_LOGMODULE_DYNDB, ISC_LOG_ERROR, + "failed to lookup symbol %s in " + "dyndb module '%s': %d", + symbol_name, filename, errstatus); + return (ISC_R_FAILURE); + } + + *symbolp = symbol; + + return (ISC_R_SUCCESS); +} + +static isc_result_t +load_library(isc_mem_t *mctx, const char *filename, const char *instname, + dyndb_implementation_t **impp) +{ + isc_result_t result; + HMODULE handle; + dyndb_implementation_t *imp = NULL; + dns_dyndb_register_t *register_func = NULL; + dns_dyndb_destroy_t *destroy_func = NULL; + dns_dyndb_version_t *version_func = NULL; + int version; + + REQUIRE(impp != NULL && *impp == NULL); + + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, + DNS_LOGMODULE_DYNDB, ISC_LOG_INFO, + "loading DynDB instance '%s' driver '%s'", + instname, filename); + + handle = LoadLibraryA(filename); + if (handle == NULL) + CHECK(ISC_R_FAILURE); + + CHECK(load_symbol(handle, filename, "dyndb_version", + (void **)&version_func)); + + version = version_func(NULL); + if (version < (DNS_DYNDB_VERSION - DNS_DYNDB_AGE) || + version > DNS_DYNDB_VERSION) + { + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, + DNS_LOGMODULE_DYNDB, ISC_LOG_ERROR, + "driver API version mismatch: %d/%d", + version, DNS_DYNDB_VERSION); + CHECK(ISC_R_FAILURE); + } + + CHECK(load_symbol(handle, filename, "dyndb_init", + (void **)®ister_func)); + CHECK(load_symbol(handle, filename, "dyndb_destroy", + (void **)&destroy_func)); + + imp = isc_mem_get(mctx, sizeof(dyndb_implementation_t)); + if (imp == NULL) + CHECK(ISC_R_NOMEMORY); + + imp->mctx = NULL; + isc_mem_attach(mctx, &imp->mctx); + imp->handle = handle; + imp->register_func = register_func; + imp->destroy_func = destroy_func; + imp->name = isc_mem_strdup(mctx, instname); + if (imp->name == NULL) + CHECK(ISC_R_NOMEMORY); + + imp->inst = NULL; + INIT_LINK(imp, link); + + *impp = imp; + imp = NULL; + +cleanup: + if (result != ISC_R_SUCCESS) + isc_log_write(dns_lctx, DNS_LOGCATEGORY_DATABASE, + DNS_LOGMODULE_DYNDB, ISC_LOG_ERROR, + "failed to dynamically load instance '%s' " + "driver '%s': %d (%s)", instname, filename, + GetLastError(), isc_result_totext(result)); + if (imp != NULL) + isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t)); + if (result != ISC_R_SUCCESS && handle != NULL) + FreeLibrary(handle); + + return (result); +} + +static void +unload_library(dyndb_implementation_t **impp) { + dyndb_implementation_t *imp; + + REQUIRE(impp != NULL && *impp != NULL); + + imp = *impp; + + isc_mem_free(imp->mctx, imp->name); + isc_mem_putanddetach(&imp->mctx, imp, sizeof(dyndb_implementation_t)); + + *impp = NULL; +} +#else /* HAVE_DLFCN_H || _WIN32 */ static isc_result_t load_library(isc_mem_t *mctx, const char *filename, const char *instname, dyndb_implementation_t **impp) diff --git a/lib/dns/include/dns/dyndb.h b/lib/dns/include/dns/dyndb.h index aea92b3aee..17720e6ae6 100644 --- a/lib/dns/include/dns/dyndb.h +++ b/lib/dns/include/dns/dyndb.h @@ -107,7 +107,7 @@ dns_dyndb_load(const char *libname, const char *name, const char *parameters, /*% * Load a dyndb module. * - * This loads a dyndb module using dlopen(), calls its register + * This loads a dyndb module using dlopen() or equivalent, calls its register * function (see dns_dyndb_register_t above), and if successful, adds * the instance handle to a list of dyndb instances so it can be cleaned * up later. diff --git a/lib/dns/win32/libdns.def.in b/lib/dns/win32/libdns.def.in index f5ddcafe90..21134e9523 100644 --- a/lib/dns/win32/libdns.def.in +++ b/lib/dns/win32/libdns.def.in @@ -99,9 +99,9 @@ dns_cache_getcleaninginterval dns_cache_getname dns_cache_getstats dns_cache_load -@IF JSON +@IF NOTYET dns_cache_renderjson -@END JSON +@END NOTYET @IF LIBXML2 dns_cache_renderxml @END LIBXML2 @@ -330,7 +330,7 @@ dns_dyndb_load dns_dyndb_cleanup dns_dyndb_createctx dns_dyndb_destroyctx -@IF DNSTAP +@IF NOTYET dns_dt_create dns_dt_setidentity dns_dt_setversion @@ -344,7 +344,7 @@ dns_dtdata_free dns_dt_open dns_dt_getframe dns_dt_close -@END DNSTAP +@END NOTYET dns_ecdb_register dns_ecdb_unregister dns_fwdtable_add diff --git a/lib/dns/win32/libdns.dsp.in b/lib/dns/win32/libdns.dsp.in index 11197c1c61..14d98a5056 100644 --- a/lib/dns/win32/libdns.dsp.in +++ b/lib/dns/win32/libdns.dsp.in @@ -182,6 +182,10 @@ SOURCE=..\include\dns\dnssec.h # End Source File # Begin Source File +SOURCE=..\include\dns\dnstap.h +# End Source File +# Begin Source File + SOURCE=..\include\dns\ds.h # End Source File # Begin Source File @@ -194,6 +198,10 @@ SOURCE=..\include\dns\ecdb.h # End Source File # Begin Source File +SOURCE=..\include\dns\edns.h +# End Source File +# Begin Source File + SOURCE=..\include\dns\enumclass.h # End Source File # Begin Source File @@ -316,6 +324,10 @@ SOURCE=..\rbtdb64.h # End Source File # Begin Source File +SOURCE=..\rdatalist_p.h +# End Source File +# Begin Source File + SOURCE=..\include\dns\rcode.h # End Source File # Begin Source File diff --git a/lib/dns/win32/libdns.vcxproj.filters.in b/lib/dns/win32/libdns.vcxproj.filters.in index 5cd1987a34..17f51a507f 100644 --- a/lib/dns/win32/libdns.vcxproj.filters.in +++ b/lib/dns/win32/libdns.vcxproj.filters.in @@ -344,6 +344,9 @@ Library Header Files + + Library Header Files + Library Header Files @@ -404,6 +407,9 @@ Library Header Files + + Library Header Files + Library Header Files @@ -416,6 +422,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 f532bea6dc..cf330fc03e 100644 --- a/lib/dns/win32/libdns.vcxproj.in +++ b/lib/dns/win32/libdns.vcxproj.in @@ -246,10 +246,12 @@ + + @@ -326,6 +328,7 @@ + diff --git a/lib/irs/win32/libirs.vcxproj.filters.in b/lib/irs/win32/libirs.vcxproj.filters.in index 5bfd27c867..eae47de958 100644 --- a/lib/irs/win32/libirs.vcxproj.filters.in +++ b/lib/irs/win32/libirs.vcxproj.filters.in @@ -62,5 +62,8 @@ 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 index 8910c5a6af..6d778eaa89 100644 --- a/lib/irs/win32/libirs.vcxproj.in +++ b/lib/irs/win32/libirs.vcxproj.in @@ -123,6 +123,7 @@ + diff --git a/lib/isc/win32/libisc.def.in b/lib/isc/win32/libisc.def.in index 791856fd74..42e32e1d78 100644 --- a/lib/isc/win32/libisc.def.in +++ b/lib/isc/win32/libisc.def.in @@ -402,9 +402,9 @@ isc_mem_ondestroy isc_mem_printallactive isc_mem_references isc_mem_register -@IF JSON +@IF NOTYET isc_mem_renderjson -@END JSON +@END NOTYET @IF LIBXML2 isc_mem_renderxml @END LIBXML2 @@ -657,9 +657,9 @@ isc_taskmgr_createinctx isc_taskmgr_destroy isc_taskmgr_excltask isc_taskmgr_mode -@IF JSON +@IF NOTYET isc_taskmgr_renderjson -@END JSON +@END NOTYET @IF LIBXML2 isc_taskmgr_renderxml @END LIBXML2 diff --git a/lib/isc/win32/libisc.dsp.in b/lib/isc/win32/libisc.dsp.in index ca53976086..c6ec1b0f66 100644 --- a/lib/isc/win32/libisc.dsp.in +++ b/lib/isc/win32/libisc.dsp.in @@ -44,9 +44,9 @@ RSC=rc.exe # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 @COPTX@ @COPTI@ /O2 /D "BIND9" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /c @IF PKCS11 -# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /c +# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /c @ELSE PKCS11 -# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /D "BIND9" /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /c +# ADD CPP /nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /D "BIND9" /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /c @END PKCS11 # ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32 @@ -57,7 +57,7 @@ BSC32=bscmake.exe # 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 @LIBXML2_LIB@ @OPENSSL_LIB@ user32.lib advapi32.lib ws2_32.lib /nologo /dll @MACHINE@ /out:"../../../Build/Release/libisc.dll" +# ADD LINK32 @LIBXML2_LIB@ @OPENSSL_LIB@ @ZLIB_LIB@ user32.lib advapi32.lib ws2_32.lib /nologo /dll @MACHINE@ /out:"../../../Build/Release/libisc.dll" # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "libisc - @PLATFORM@ Debug" @@ -75,9 +75,9 @@ LINK32=link.exe # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /D "BIND9" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" @COPTY@ /FD /GZ /c @IF PKCS11 -# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR @COPTY@ /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../../lib/dns/win32/include" /I "../../../lib/dns/include" /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR @COPTY@ /FD /GZ /c @ELSE PKCS11 -# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /D "BIND9" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR @COPTY@ /FD /GZ /c +# ADD CPP /nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /D "BIND9" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR @COPTY@ /FD /GZ /c @END PKCS11 # ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32 # ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32 @@ -88,7 +88,7 @@ BSC32=bscmake.exe # 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 @LIBXML2_LIB@ @OPENSSL_LIB@ user32.lib advapi32.lib ws2_32.lib /nologo /dll /map /debug @MACHINE@ /out:"../../../Build/Debug/libisc.dll" /pdbtype:sept +# ADD LINK32 @LIBXML2_LIB@ @OPENSSL_LIB@ @ZLIB_LIB@ user32.lib advapi32.lib ws2_32.lib /nologo /dll /map /debug @MACHINE@ /out:"../../../Build/Debug/libisc.dll" /pdbtype:sept !ENDIF @@ -411,7 +411,7 @@ SOURCE=..\include\isc\mem.h # End Source File # Begin Source File -SOURCE=.\include\isc\meminfo.h +SOURCE=..\include\isc\meminfo.h # End Source File # Begin Source File @@ -571,7 +571,11 @@ SOURCE=..\include\isc\socket.h # End Source File # Begin Source File -SOURCE=.\include\isc\stats.h +SOURCE=.\include\isc\stat.h +# End Source File +# Begin Source File + +SOURCE=..\include\isc\stats.h # End Source File # Begin Source File diff --git a/lib/isc/win32/libisc.mak.in b/lib/isc/win32/libisc.mak.in index 8c129aa25b..4b55d5ff33 100644 --- a/lib/isc/win32/libisc.mak.in +++ b/lib/isc/win32/libisc.mak.in @@ -216,9 +216,9 @@ CLEAN : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" @IF PKCS11 -CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../dns/win32/include" /I "../../dns/include" @LIBXML2_INC@ @OPENSSL_INC@ /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c +CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../dns/win32/include" /I "../../dns/include" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c @ELSE PKCS11 -CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" @LIBXML2_INC@ @OPENSSL_INC@ /D "BIND9" /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c +CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /D "BIND9" /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c @END PKCS11 MTL_PROJ=/nologo /D "NDEBUG" /mktyplib203 /win32 BSC32=bscmake.exe @@ -226,7 +226,7 @@ BSC32_FLAGS=/nologo /o"$(OUTDIR)\libisc.bsc" BSC32_SBRS= \ LINK32=link.exe -LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib $(LIBXML) @OPENSSL_LIB@ /nologo /dll /incremental:no /pdb:"$(OUTDIR)\libisc.pdb" @MACHINE@ /def:".\libisc.def" /out:"../../../Build/Release/libisc.dll" /implib:"$(OUTDIR)\libisc.lib" +LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib $(LIBXML) @OPENSSL_LIB@ @ZLIB_LIB@ /nologo /dll /incremental:no /pdb:"$(OUTDIR)\libisc.pdb" @MACHINE@ /def:".\libisc.def" /out:"../../../Build/Release/libisc.dll" /implib:"$(OUTDIR)\libisc.lib" DEF_FILE= \ ".\libisc.def" LINK32_OBJS= \ @@ -535,9 +535,9 @@ CLEAN : if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" @IF PKCS11 -CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../dns/win32/include" /I "../../dns/include" @LIBXML2_INC@ @OPENSSL_INC@ /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c +CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" /I "../../dns/win32/include" /I "../../dns/include" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /D "BIND9" @CRYPTO@ @PK11_LIB_LOCATION@ /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c @ELSE PKCS11 -CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" @LIBXML2_INC@ @OPENSSL_INC@ /D "BIND9" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c +CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../" /I "include" /I "../include" /I "win32" /I "../../isccfg/include" @LIBXML2_INC@ @OPENSSL_INC@ @ZLIB_INC@ /D "BIND9" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__STDC__" /D "_MBCS" /D "_USRDLL" /D "LIBISC_EXPORTS" /FR"$(INTDIR)\\" /Fp"$(INTDIR)\libisc.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c @END PKCS11 MTL_PROJ=/nologo /D "_DEBUG" /mktyplib203 /win32 BSC32=bscmake.exe @@ -644,7 +644,7 @@ BSC32_SBRS= \ << LINK32=link.exe -LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib $(LIBXML) @OPENSSL_LIB@ /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\libisc.pdb" /map:"$(INTDIR)\libisc.map" /debug @MACHINE@ /def:".\libisc.def" /out:"../../../Build/Debug/libisc.dll" /implib:"$(OUTDIR)\libisc.lib" /pdbtype:sept +LINK32_FLAGS=user32.lib advapi32.lib ws2_32.lib $(LIBXML) @OPENSSL_LIB@ @ZLIB_LIB@ /nologo /dll /incremental:yes /pdb:"$(OUTDIR)\libisc.pdb" /map:"$(INTDIR)\libisc.map" /debug @MACHINE@ /def:".\libisc.def" /out:"../../../Build/Debug/libisc.dll" /implib:"$(OUTDIR)\libisc.lib" /pdbtype:sept DEF_FILE= \ ".\libisc.def" LINK32_OBJS= \ diff --git a/lib/isc/win32/libisc.vcxproj.filters.in b/lib/isc/win32/libisc.vcxproj.filters.in index 9f68909f96..997979a8e1 100644 --- a/lib/isc/win32/libisc.vcxproj.filters.in +++ b/lib/isc/win32/libisc.vcxproj.filters.in @@ -142,6 +142,9 @@ Library Header Files + + Win32 Header Files + Library Header Files @@ -229,6 +232,9 @@ Library Header Files + + Library Header Files + Library Header Files @@ -309,9 +315,6 @@ Win32 Header Files - - Win32 Header Files - Win32 Header Files diff --git a/lib/isc/win32/libisc.vcxproj.in b/lib/isc/win32/libisc.vcxproj.in index 0d4215f1b0..dee0804fcd 100644 --- a/lib/isc/win32/libisc.vcxproj.in +++ b/lib/isc/win32/libisc.vcxproj.in @@ -55,10 +55,10 @@ Disabled @IF PKCS11 BIND9;@CRYPTO@@PK11_LIB_LOCATION@WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) - .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) @ELSE PKCS11 BIND9;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) - .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories) + .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories) @END PKCS11 false .\$(Configuration)\$(TargetName).pch @@ -71,7 +71,7 @@ Console true ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) - @LIBXML2_LIB@@OPENSSL_LIB@ws2_32.lib;%(AdditionalDependencies) + @LIBXML2_LIB@@OPENSSL_LIB@@ZLIB_LIB@ws2_32.lib;%(AdditionalDependencies) $(ProjectName).def .\$(Configuration)\$(ProjectName).lib @@ -121,6 +121,12 @@ copy @IDN_DLL@ ..\Build\Debug\ copy @ICONV_DLL@ ..\Build\Debug\ @END IDNKIT +@IF ZLIB +echo Copying the zlib DLL. + +copy @ZLIB_DLL@ ..\Build\Debug\ +@END ZLIB + echo Copying Visual C x86 Redistributable Installer. copy /Y @VCREDIST_PATH@ ..\Build\Debug\ @@ -143,10 +149,10 @@ copy InstallFiles ..\Build\Debug\ @INTRINSIC@ @IF PKCS11 BIND9;@CRYPTO@@PK11_LIB_LOCATION@WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) - .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) + .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories) @ELSE PKCS11 BIND9;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions) - .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories) + .\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories) @END PKCS11 OnlyExplicitInline false @@ -162,7 +168,7 @@ copy InstallFiles ..\Build\Debug\ true true ..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt) - @LIBXML2_LIB@@OPENSSL_LIB@ws2_32.lib;%(AdditionalDependencies) + @LIBXML2_LIB@@OPENSSL_LIB@@ZLIB_LIB@ws2_32.lib;%(AdditionalDependencies) $(ProjectName).def .\$(Configuration)\$(ProjectName).lib Default @@ -262,6 +268,12 @@ copy @IDN_DLL@ ..\Build\Release\ copy @ICONV_DLL@ ..\Build\Release\ @END IDNKIT +@IF ZLIB +echo Copying the zlib DLL. + +copy @ZLIB_DLL@ ..\Build\Release\ +@END ZLIB + echo Copying Visual C x86 Redistributable Installer. copy /Y @VCREDIST_PATH@ ..\Build\Release\ @@ -319,6 +331,7 @@ copy InstallFiles ..\Build\Release\ + @@ -348,6 +361,7 @@ copy InstallFiles ..\Build\Release\ + @@ -382,7 +396,6 @@ copy InstallFiles ..\Build\Release\ - diff --git a/lib/isccc/win32/libisccc.dsp.in b/lib/isccc/win32/libisccc.dsp.in index 44f0e76762..82c731efc8 100644 --- a/lib/isccc/win32/libisccc.dsp.in +++ b/lib/isccc/win32/libisccc.dsp.in @@ -184,6 +184,10 @@ SOURCE=..\include\isccc\types.h SOURCE=..\include\isccc\util.h # End Source File +# Begin Source File + +SOURCE=..\include\isccc\version.h +# End Source File # End Group # Begin Group "Resource Files" diff --git a/lib/isccc/win32/libisccc.vcxproj.filters.in b/lib/isccc/win32/libisccc.vcxproj.filters.in index 822ac956d0..b17d13c078 100644 --- a/lib/isccc/win32/libisccc.vcxproj.filters.in +++ b/lib/isccc/win32/libisccc.vcxproj.filters.in @@ -86,5 +86,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/lib/isccc/win32/libisccc.vcxproj.in b/lib/isccc/win32/libisccc.vcxproj.in index f0e5d4bcd5..eeea37f3b3 100644 --- a/lib/isccc/win32/libisccc.vcxproj.in +++ b/lib/isccc/win32/libisccc.vcxproj.in @@ -131,6 +131,7 @@ + diff --git a/lib/isccfg/win32/libisccfg.dsp.in b/lib/isccfg/win32/libisccfg.dsp.in index 869fb85a2f..425af5af14 100644 --- a/lib/isccfg/win32/libisccfg.dsp.in +++ b/lib/isccfg/win32/libisccfg.dsp.in @@ -152,6 +152,10 @@ SOURCE=..\include\isccfg\log.h SOURCE=..\include\isccfg\namedconf.h # End Source File +# Begin Source File + +SOURCE=..\include\isccfg\version.h +# End Source File # End Group # Begin Group "Resource Files" diff --git a/lib/isccfg/win32/libisccfg.vcxproj.filters.in b/lib/isccfg/win32/libisccfg.vcxproj.filters.in index 27d33a0acb..46b4e54bc5 100644 --- a/lib/isccfg/win32/libisccfg.vcxproj.filters.in +++ b/lib/isccfg/win32/libisccfg.vcxproj.filters.in @@ -59,5 +59,8 @@ Header Files + + Header Files + \ No newline at end of file diff --git a/lib/isccfg/win32/libisccfg.vcxproj.in b/lib/isccfg/win32/libisccfg.vcxproj.in index 9f2bea1e98..c5b5a85c03 100644 --- a/lib/isccfg/win32/libisccfg.vcxproj.in +++ b/lib/isccfg/win32/libisccfg.vcxproj.in @@ -122,6 +122,7 @@ + diff --git a/lib/lwres/win32/liblwres.dsp.in b/lib/lwres/win32/liblwres.dsp.in index 527a718db8..5a66a95adc 100644 --- a/lib/lwres/win32/liblwres.dsp.in +++ b/lib/lwres/win32/liblwres.dsp.in @@ -244,6 +244,10 @@ SOURCE=..\include\lwres\stdlib.h SOURCE=..\include\lwres\string.h # End Source File +# Begin Source File + +SOURCE=..\include\lwres\version.h +# End Source File # End Group # Begin Group "Resource Files" diff --git a/lib/lwres/win32/liblwres.vcxproj.filters.in b/lib/lwres/win32/liblwres.vcxproj.filters.in index 7b7c614a21..990684d1a0 100644 --- a/lib/lwres/win32/liblwres.vcxproj.filters.in +++ b/lib/lwres/win32/liblwres.vcxproj.filters.in @@ -131,5 +131,8 @@ Header Files + + Header Files + diff --git a/lib/lwres/win32/liblwres.vcxproj.in b/lib/lwres/win32/liblwres.vcxproj.in index 49cdeda095..b6de5f6c24 100644 --- a/lib/lwres/win32/liblwres.vcxproj.in +++ b/lib/lwres/win32/liblwres.vcxproj.in @@ -140,6 +140,7 @@ + diff --git a/win32utils/Configure b/win32utils/Configure index 2476d45c40..a48fa64270 100644 --- a/win32utils/Configure +++ b/win32utils/Configure @@ -348,7 +348,7 @@ my @projectlist = ("..\\bin\\check\\win32\\checkconf.vcxproj", my %configdefh; -my @substdefh = ("AES_SIT", +my @substdefh = ("AES_CC", "ALLOW_FILTER_AAAA", "CONFIGARGS", "DNS_RDATASET_FIXED", @@ -369,9 +369,10 @@ my @substdefh = ("AES_SIT", "HAVE_PKCS11_ECDSA", "HAVE_PKCS11_GOST", "HAVE_READLINE", + "HAVE_ZLIB", "HMAC_RETURN_INT", - "HMAC_SHA1_SIT", - "HMAC_SHA256_SIT", + "HMAC_SHA1_CC", + "HMAC_SHA256_CC", "ISC_LIST_CHECKINIT", "PREFER_GOSTASN1", "TUNE_LARGE", @@ -389,7 +390,6 @@ my @substdefp = ("ISC_PLATFORM_HAVEATOMICSTORE", "ISC_PLATFORM_HAVEXADDQ", "ISC_PLATFORM_NEEDSTRCASESTR", "ISC_PLATFORM_USEBACKTRACE", - "ISC_PLATFORM_USESIT", "ISC_PLATFORM_WANTAES"); # includes @@ -401,7 +401,8 @@ my @substinc = ("GSSAPI_INC", "IDN_INC", "LIBXML2_INC", "OPENSSL_INC", - "READLINE_INC"); + "READLINE_INC", + "ZLIB_INC"); # libraries @@ -414,7 +415,8 @@ my @substlib = ("GSSAPI_LIB", "LIBXML2_LIB", "OPENSSL_LIB", "READLINE_LIB", - "READLINE_LIBD"); + "READLINE_LIBD", + "ZLIB_LIB"); # DLLs @@ -429,7 +431,8 @@ my @substdll = ("COMERR_DLL", "K5SPRT_DLL", "LIBXML2_DLL", "OPENSSL_DLL", - "WSHELP_DLL"); + "WSHELP_DLL", + "ZLIB_DLL"); # variables @@ -477,7 +480,10 @@ my @substcond = ("AES", "PYTHON", "SAMPLES", "TESTS", - "XTESTS"); + "XTESTS", + "ZLIB"); + +my @allcond = (@substcond, "NOTYET", "NOLONGER"); # arguments @@ -492,8 +498,7 @@ my @enablelist = ("developer", "filter-aaaa", "querytrace", "rpz-nsdname", - "rpz-nsip", - "sit"); + "rpz-nsip"); # with-xxx/without-xxx @@ -512,10 +517,11 @@ my @withlist = ("aes", "python", "readline", "samples", - "sit-alg", + "cc-alg", "tests", "tuning", - "vcredist"); + "vcredist", + "zlib"); # general arguments @@ -551,7 +557,6 @@ my @help = ( " enable-querytrace enable very verbose query trace [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", @@ -561,7 +566,7 @@ my @help = ( " 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-cc-alg choose the algorithm for cookies 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", @@ -569,6 +574,7 @@ my @help = ( " with-readline[=PATH] build with readline library support yes|no|path\n", " with-idn[=PATH] build with IDN kit support yes|no|path\n", " with-iconv[=PATH] path of the iconv DLL [default=same than idn]\n", +" with-zlib[=PATH] build with zlib library yes|no|path\n", " with-vcredist[=PATH] visual C++ redistributable package yes|path\n", " with-tuning=OPTION tune for plaform size (large|default)\n", " with-cross-compile 32 / 64 bit build / host plaforms\n"); @@ -593,7 +599,6 @@ my $enable_developer = "no"; my $enable_querytrace = "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"; @@ -605,7 +610,7 @@ my $use_ecdsa = "auto"; my $use_gost = "auto"; my $gost_encoding = "raw"; my $use_aes = "auto"; -my $sit_algorithm = "aes"; +my $cookie_algorithm = "aes"; my $use_gssapi = "no"; my $gssapi_path = "C:\\Program\ Files\\MIT\\Kerberos\\"; my $use_geoip = "no"; @@ -619,6 +624,8 @@ my $readline_path = "..\\..\\"; my $use_idn = "no"; my $idn_path = "..\\..\\"; my $iconv_path = " --idn-- "; +my $use_zlib = "no"; +my $zlib_path = "..\\..\\"; my $use_vcredist = "yes"; my $vcredist_path = " --infer-- "; my $cross_compile = "no"; @@ -761,10 +768,6 @@ 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") { @@ -786,7 +789,6 @@ if ($enable_developer eq "yes") { # TODO: dlz filesystem $use_tests = "yes"; $use_samples = "yes"; - $enable_sit = "yes"; } # parse with/without @@ -842,8 +844,8 @@ sub mywith { } elsif ($val =~ /^yes$/i) { $use_aes = "yes"; } - } elsif ($key =~ /^sit-alg$/i) { - $sit_algorithm = $val; + } elsif ($key =~ /^cc-alg$/i) { + $cookie_algorithm = $val; } elsif ($key =~ /^gssapi$/i) { if ($val !~ /^no$/i) { $use_gssapi = "yes"; @@ -886,6 +888,13 @@ sub mywith { } elsif ($val !~ /^yes$/i) { $iconv_path = $val; } + } elsif ($key =~ /^zlib$/i) { + if ($val !~ /^no$/i) { + $use_zlib = "yes"; + if ($val !~ /^yes$/i) { + $zlib_path = $val; + } + } } elsif ($key =~ /^python$/i) { if ($val =~ /^no$/i) { $use_python = "no"; @@ -1026,12 +1035,7 @@ 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"; - } + print "cookie algorithm: $cookie_algorithm\n"; if ($use_openssl eq "no") { print "openssl: disabled\n"; } else { @@ -1095,6 +1099,11 @@ if ($verbose) { print "iconv-path: $iconv_path\n"; } } + if ($use_zlib eq "no") { + print "zlib: disabled\n"; + } else { + print "zlib-path: $zlib_path\n"; + } if ($use_python eq "no") { print "python: disabled\n"; } else { @@ -1391,11 +1400,6 @@ 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; @@ -1878,23 +1882,21 @@ if ($use_aes eq "yes") { $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"; +# with-cc-alg +if ($cookie_algorithm eq "aes") { + if ($use_aes ne "yes") { + $cookie_algorithm = "sha256"; + } else { + $configdefh{"AES_CC"} = 1; } } +if ($cookie_algorithm eq "sha1") { + $configdefh{"HMAC_SHA1_CC"} = 1; +} elsif ($cookie_algorithm eq "sha256") { + $configdefh{"HMAC_SHA256_CC"} = 1; +} elsif ($cookie_algorithm ne "aes") { + die "Unrecognized cookie algorithm: $cookie_algorithm\n"; +} # enable-openssl-hash if ($enable_openssl_hash eq "yes") { @@ -2287,6 +2289,34 @@ if ($use_libxml2 eq "yes") { $configdll{"LIBXML2_DLL"} = "$libxml2_dll"; } +# with-zlib +if ($use_zlib eq "no") { + if ($verbose) { + print "zlib library is disabled\n"; + } +} else { + $configcond{"ZLIB"} = 1; + $zlib_path = File::Spec->rel2abs($zlib_path); + if ($verbose) { + print "checking for zlib directory at \"$zlib_path\"\n"; + } + if (!-f File::Spec->catfile($zlib_path, "zlib.h")) { + die "can't find zlib.h include\n"; + } + if (!-f File::Spec->catfile($zlib_path, "zdll.lib")) { + die "can't find zdll.lib library\n"; + } + if (!-f File::Spec->catfile($zlib_path, "zlib1.dll")) { + die "can't find zlib1.dll DLL\n"; + } + $configdefh{"HAVE_ZLIB"} = 1; + $configinc{"ZLIB_INC"} = "$zlib_path"; + my $zlib_lib = File::Spec->catfile($zlib_path, "zdll.lib"); + $configlib{"ZLIB_LIB"} = "$zlib_lib"; + my $zlib_dll = File::Spec->catfile($zlib_path, "zlib1.dll"); + $configdll{"ZLIB_DLL"} = "$zlib_dll"; +} + # with-python if ($use_python eq "no") { if ($verbose) { @@ -2426,11 +2456,15 @@ sub setupfile { unshift(@conds, $cond); unshift(@passes, $pass); } - $cond = $1; - if (defined($configcond{$cond})) { - # do nothing + if ($1 ~~ @allcond) { + $cond = $1; + if (defined($configcond{$cond})) { + # do nothing + } else { + $pass = 0; + } } else { - $pass = 0; + die "unknown condition \@IF $1 in $filename\n"; } next; } elsif ($line =~ /^\@ELSE (.*)$/) { @@ -2541,11 +2575,15 @@ sub setupproject { unshift(@conds, $cond); unshift(@passes, $pass); } - $cond = $1; - if (defined($configcond{$cond})) { - # do nothing + if ($1 ~~ @allcond) { + $cond = $1; + if (defined($configcond{$cond})) { + # do nothing + } else { + $pass = 0; + } } else { - $pass = 0; + die "unknown condition \@IF $1 in $projectname\n"; } next; } elsif ($line =~ /^\@ELSE (.*)$/) { @@ -3051,7 +3089,6 @@ exit 0; # Notes: Unix configure.in options # --enable-developer partially supported -# --enable-dnstap not supported (requires libfstrm support on win32) # --enable-newstats (9.9/9.9sub only) # --enable-native-pkcs11 supported # --enable-openssl-version-check included without a way to disable it @@ -3059,38 +3096,40 @@ exit 0; # --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) -# --enable-exportlib TODO (obsolete) # --enable-ipv6 included without a way to disable it # --enable-atomic supported (renamed to intrinsic) -# --enable-spnego support (part of GSSAPI) +# --enable-isc-spnego supported (part of GSSAPI) # --enable-fixed-rrset supported # --enable-querytrace supported # --disable-rpz-nsip supported # --disable-rpz-nsdname supported # --enable-filter-aaaa supported -# --enable-sit supported # --enable-full-report supported by verbose +# --enable-dnstap not supported (requires libfstrm support on WIN32) +# --enable-seccomp not supported (Linux specific) # --with-python supported # --with-openssl supported # --with-pkcs11 supported # --with-ecdsa supported # --with-gost supported # --with-aes supported -# --with-sit-alg supported +# --with-cc-alg supported # --with-geoip supported # --with-gssapi supported with MIT (K)erberos (f)or (W)indows # --with-libxml2 supported # --with-libjson not supported on WIN32 (package not available on WIN32) -# --with-purify ? (package available on WIN32 but for free?) -# --with-gperftools-profiler (package not available on WIN32) +# --with-zlib supported +# --with-purify not supported (package available on WIN32 but for free?) +# --with-gperftools-profiler not supported (package not available on WIN32) # --with-libtool not supported on WIN32 (never) # --with-locktype not supported on WIN32 (not yet available on WIN32) # --with-readline supported -# --with-idn support -# --with-[lib]iconv (part of IDN) -# --with-atf not supported on WIN32 (package not available on WIN32) -# --with-libfrtrm not supported (not yet available on WIN32) # --with-protobuf-c not supported (no reason to until libfstrm is ready) +# --with-libfrtrm not supported (not yet available on WIN32) +# --with-docbook-xsl not supported (?) +# --with-idn[lib] supported +# --with-[lib]iconv supported (part of IDN) +# --with-atf not supported on WIN32 (package not available on WIN32) # --with-tuning supported # --with-dlopen included without a way to disable it # --with-dlz-* ? diff --git a/win32utils/build.txt b/win32utils/build.txt index 721ecdbd40..869b4dbac5 100644 --- a/win32utils/build.txt +++ b/win32utils/build.txt @@ -23,6 +23,10 @@ If you wish to use IP geolocation, GeoIP API and database must be downloaded, patched and built on the system on which you are building BIND. +If you wish to use zlib/deflate on the statistics channel, zlib +must be downloaded and built on the system on which you are building +BIND. + If you wish to use readline, the readline library must be downloaded and built on the system on which you are building BIND. @@ -82,7 +86,7 @@ Step 1: Download and build OpenSSL Step 2: Download and build LibXML2 LibXML2 is required to use the statistics channel. If you wish to - build BIND 9 without support for this feature, skip to step 3. + build BIND 9 without support for this feature, skip to step 4. Download and untar the libxml2 sources from ftp://xmlsoft.org/libxml2. Extract them in the same directory in which you extracted the BIND 9 @@ -102,10 +106,22 @@ Step 2: Download and build LibXML2 (in the libxml2-2.9.2 directory) when the correct file is configure.ac so raises a 'not found' error. -Step 3: Download and build GeoIP +Step 3: Download and build zlib + + The statistics channel (aka internal HTTP server) can support + zlib "deflate" compression method. If you don't want to this + feature, skip to step 4. + + Download and untar the zlib sources from http://www.zlib.net, + extract them, read the win32\Makefile.msc for the Usage comment + at the beginning of this file, then build the zlib1.dll DLL for + the intended processor (i.e., win32 aka x86, or x64), e.g., + running 'nmake /f win32\Makefile.msc'. + +Step 4: Download and build GeoIP Geographic ("geoip") ACLs require libGeoIP. If you wish to build BIND 9 - without support for this feature, skip to step 4. + without support for this feature, skip to step 5. The libGeoIP source code is available from: @@ -118,14 +134,14 @@ Step 3: Download and build GeoIP This patch has been submitted upstream, and will be included in future versions of libGeoIP. -Step 4: Download and build Readline +Step 5: Download and build Readline The readline library adds command-line editing in nslookup and nsupdate. If you wish to build BIND 9 without support for this feature, skip to - step 5. + step 6. Because the original GNU source for the readline library has no WIN32 - support, it will be necessary to download a version of the static + support, it will be necessary to download a version of the static readline library source that is ready to be built by Visual Studio. One such version is available at: @@ -134,7 +150,7 @@ Step 4: Download and build Readline Note: Windows command (cmd.exe) provides an integrated line edition feature so it is not recommended to configure bind with readline. -Step 5: Make the redistributable runtime object available +Step 6: Make the redistributable runtime object available Check that the Microsoft redistributable object (vcredist_x86.exe or vcredist_x64.exe) is available to the build. The file may be placed @@ -143,10 +159,10 @@ Step 5: Make the redistributable runtime object available may be placed in \build\vcredist_x86.exe). Or, the path to the file can be specified via the VCREDIST_PATH environment variable, or via the "with-vcredist=PATH" option to the configuration script (see - step 4). If none of these options is used, Configure will attempt to + step 7). If none of these options is used, Configure will attempt to find the redistributable based on clues in the build environment. -Step 6: Configuring the BIND build +Step 7: Configuring the BIND build From the command prompt, cd to the win32utils directory under the BIND 9 root: @@ -170,7 +186,7 @@ Step 6: Configuring the BIND build perl Configure clean -Step 7: Building BIND +Step 8: Building BIND To build using 'nmake' or older versions of Visual Studio (e.g. VS 2005 or VS 2008), go to the legacy subdirectory: @@ -194,7 +210,7 @@ Step 7: Building BIND Note: This mode does not support building for Windows XP. -Step 8: Install +Step 9: Install Installation is accomplished by running the BINDInstall program. All DLL's are copied to the Program Files area and all applications diff --git a/win32utils/legacy/BuildSetup.bat.in b/win32utils/legacy/BuildSetup.bat.in index d6afbb03ab..aa73570a76 100644 --- a/win32utils/legacy/BuildSetup.bat.in +++ b/win32utils/legacy/BuildSetup.bat.in @@ -139,6 +139,13 @@ copy @ICONV_DLL@ ..\Build\Release\ copy @ICONV_DLL@ ..\Build\Debug\ @END IDNKIT +@IF ZLIB +echo Copying the zlib DLL. + +copy @ZLIB_DLL@ ..\Build\Release\ +copy @ZLIB_DLL@ ..\Build\Debug\ +@END ZLIB + echo Copying the redistributable runtime object. rem