# 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
<ClInclude Include="..\include\named\query.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\named\seccomp.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\named\server.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\named\main.h" />
<ClInclude Include="..\include\named\notify.h" />
<ClInclude Include="..\include\named\query.h" />
+ <ClInclude Include="..\include\named\seccomp.h" />
<ClInclude Include="..\include\named\server.h" />
<ClInclude Include="..\include\named\sortlist.h" />
<ClInclude Include="..\include\named\statschannel.h" />
/* 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@
/* 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@
# 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
<ClInclude Include="..\include\bind9\getaddresses.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\bind9\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
<ItemGroup>
<ClInclude Include="..\include\bind9\check.h" />
<ClInclude Include="..\include\bind9\getaddresses.h" />
+ <ClInclude Include="..\include\bind9\version.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
#include <config.h>
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#elif _WIN32
+#include <windows.h>
+#endif
+
#include <isc/buffer.h>
#include <isc/mem.h>
#include <isc/mutex.h>
#include <string.h>
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
#define CHECK(op) \
do { result = (op); \
if (result != ISC_R_SUCCESS) goto cleanup; \
*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)
/*%
* 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.
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
dns_dyndb_cleanup
dns_dyndb_createctx
dns_dyndb_destroyctx
-@IF DNSTAP
+@IF NOTYET
dns_dt_create
dns_dt_setidentity
dns_dt_setversion
dns_dt_open
dns_dt_getframe
dns_dt_close
-@END DNSTAP
+@END NOTYET
dns_ecdb_register
dns_ecdb_unregister
dns_fwdtable_add
# 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
# 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
# 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
<ClInclude Include="..\rbtdb64.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\rdatalist_p.h">
+ <Filter>Library Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\dns\acache.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\dns\dnssec.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\dns\dnstap.h">
+ <Filter>Library Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\dns\ds.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\dns\ecdb.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\dns\edns.h">
+ <Filter>Library Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\dns\enumclass.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\dns\dlz.h" />
<ClInclude Include="..\include\dns\dns64.h" />
<ClInclude Include="..\include\dns\dnssec.h" />
+ <ClInclude Include="..\include\dns\dnstap.h" />
<ClInclude Include="..\include\dns\ds.h" />
<ClInclude Include="..\include\dns\dsdigest.h" />
<ClInclude Include="..\include\dns\dyndb.h" />
<ClInclude Include="..\include\dns\ecdb.h" />
+ <ClInclude Include="..\include\dns\edns.h" />
<ClInclude Include="..\include\dns\enumclass.h" />
<ClInclude Include="..\include\dns\enumtype.h" />
<ClInclude Include="..\include\dns\events.h" />
<ClInclude Include="..\include\dst\result.h" />
<ClInclude Include="..\rbtdb.h" />
<ClInclude Include="..\rbtdb64.h" />
+ <ClInclude Include="..\rdatalist_p.h" />
<ClInclude Include="..\spnego.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ClInclude Include="..\include\irs\types.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\irs\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
<ClInclude Include="..\include\irs\platform.h" />
<ClInclude Include="..\include\irs\resconf.h" />
<ClInclude Include="..\include\irs\types.h" />
+ <ClInclude Include="..\include\irs\version.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
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
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
# 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
# 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"
# 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
# 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
# End Source File
# Begin Source File
-SOURCE=.\include\isc\meminfo.h
+SOURCE=..\include\isc\meminfo.h
# End Source File
# Begin Source File
# 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
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
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= \
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
<<
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= \
<ClInclude Include="..\include\isc\mem.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\isc\meminfo.h">
+ <Filter>Win32 Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\isc\msgcat.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="..\include\isc\socket.h">
<Filter>Library Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\isc\stats.h">
+ <Filter>Library Header Files</Filter>
+ </ClInclude>
<ClInclude Include="..\include\isc\stdio.h">
<Filter>Library Header Files</Filter>
</ClInclude>
<ClInclude Include="include\isc\keyboard.h">
<Filter>Win32 Header Files</Filter>
</ClInclude>
- <ClInclude Include="include\isc\meminfo.h">
- <Filter>Win32 Header Files</Filter>
- </ClInclude>
<ClInclude Include="include\isc\mutex.h">
<Filter>Win32 Header Files</Filter>
</ClInclude>
<Optimization>Disabled</Optimization>
@IF PKCS11
<PreprocessorDefinitions>BIND9;@CRYPTO@@PK11_LIB_LOCATION@WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ELSE PKCS11
<PreprocessorDefinitions>BIND9;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@END PKCS11
<FunctionLevelLinking>false</FunctionLevelLinking>
<PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>
<SubSystem>Console</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@@ZLIB_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile>
<ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>
</Link>
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\
<IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>
@IF PKCS11
<PreprocessorDefinitions>BIND9;@CRYPTO@@PK11_LIB_LOCATION@WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;..\..\dns\win32\include;..\..\dns\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@ELSE PKCS11
<PreprocessorDefinitions>BIND9;WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBISC_EXPORTS;%(PreprocessorDefinitions);%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <AdditionalIncludeDirectories>.\;..\..\..\;@LIBXML2_INC@@OPENSSL_INC@@ZLIB_INC@include;..\include;win32;..\..\isccfg\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@END PKCS11
<InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
<WholeProgramOptimization>false</WholeProgramOptimization>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<OutputFile>..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <AdditionalDependencies>@LIBXML2_LIB@@OPENSSL_LIB@@ZLIB_LIB@ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>$(ProjectName).def</ModuleDefinitionFile>
<ImportLibrary>.\$(Configuration)\$(ProjectName).lib</ImportLibrary>
<LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
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\
<ClInclude Include="..\include\isc\magic.h" />
<ClInclude Include="..\include\isc\md5.h" />
<ClInclude Include="..\include\isc\mem.h" />
+ <ClInclude Include="..\include\isc\meminfo.h" />
<ClInclude Include="..\include\isc\msgcat.h" />
<ClInclude Include="..\include\isc\msgs.h" />
<ClInclude Include="..\include\isc\mutexblock.h" />
<ClInclude Include="..\include\isc\sha2.h" />
<ClInclude Include="..\include\isc\sockaddr.h" />
<ClInclude Include="..\include\isc\socket.h" />
+ <ClInclude Include="..\include\isc\stats.h" />
<ClInclude Include="..\include\isc\stdio.h" />
<ClInclude Include="..\include\isc\stdlib.h" />
<ClInclude Include="..\include\isc\string.h" />
<ClInclude Include="include\isc\int.h" />
<ClInclude Include="include\isc\ipv6.h" />
<ClInclude Include="include\isc\keyboard.h" />
- <ClInclude Include="include\isc\meminfo.h" />
<ClInclude Include="include\isc\mutex.h" />
<ClInclude Include="include\isc\net.h" />
<ClInclude Include="include\isc\netdb.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"
<ClInclude Include="..\include\isccc\util.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\isccc\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
<ClInclude Include="..\include\isccc\symtype.h" />
<ClInclude Include="..\include\isccc\types.h" />
<ClInclude Include="..\include\isccc\util.h" />
+ <ClInclude Include="..\include\isccc\version.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
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"
<ClInclude Include="..\include\isccfg\namedconf.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\isccfg\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
<ClInclude Include="..\include\isccfg\grammar.h" />
<ClInclude Include="..\include\isccfg\log.h" />
<ClInclude Include="..\include\isccfg\namedconf.h" />
+ <ClInclude Include="..\include\isccfg\version.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
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"
<ClInclude Include="..\include\lwres\string.h">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\include\lwres\version.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
<ClInclude Include="..\include\lwres\result.h" />
<ClInclude Include="..\include\lwres\stdlib.h" />
<ClInclude Include="..\include\lwres\string.h" />
+ <ClInclude Include="..\include\lwres\version.h" />
<ClInclude Include="include\lwres\int.h" />
<ClInclude Include="include\lwres\net.h" />
<ClInclude Include="include\lwres\netdb.h" />
my %configdefh;
-my @substdefh = ("AES_SIT",
+my @substdefh = ("AES_CC",
"ALLOW_FILTER_AAAA",
"CONFIGARGS",
"DNS_RDATASET_FIXED",
"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",
"ISC_PLATFORM_HAVEXADDQ",
"ISC_PLATFORM_NEEDSTRCASESTR",
"ISC_PLATFORM_USEBACKTRACE",
- "ISC_PLATFORM_USESIT",
"ISC_PLATFORM_WANTAES");
# includes
"IDN_INC",
"LIBXML2_INC",
"OPENSSL_INC",
- "READLINE_INC");
+ "READLINE_INC",
+ "ZLIB_INC");
# libraries
"LIBXML2_LIB",
"OPENSSL_LIB",
"READLINE_LIB",
- "READLINE_LIBD");
+ "READLINE_LIBD",
+ "ZLIB_LIB");
# DLLs
"K5SPRT_DLL",
"LIBXML2_DLL",
"OPENSSL_DLL",
- "WSHELP_DLL");
+ "WSHELP_DLL",
+ "ZLIB_DLL");
# variables
"PYTHON",
"SAMPLES",
"TESTS",
- "XTESTS");
+ "XTESTS",
+ "ZLIB");
+
+my @allcond = (@substcond, "NOTYET", "NOLONGER");
# arguments
"filter-aaaa",
"querytrace",
"rpz-nsdname",
- "rpz-nsip",
- "sit");
+ "rpz-nsip");
# with-xxx/without-xxx
"python",
"readline",
"samples",
- "sit-alg",
+ "cc-alg",
"tests",
"tuning",
- "vcredist");
+ "vcredist",
+ "zlib");
# general arguments
" 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",
" 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",
" 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");
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";
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";
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";
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") {
# TODO: dlz filesystem
$use_tests = "yes";
$use_samples = "yes";
- $enable_sit = "yes";
}
# parse with/without
} 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";
} 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";
} 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 {
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 {
$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;
$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") {
$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) {
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 (.*)$/) {
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 (.*)$/) {
# 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
# --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-* ?
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.
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
(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:
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:
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
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:
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:
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
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