3595. [port] win32: Fix build problems introduced by change #3550.
[RT #33807]
+3595. [port] win32: Fix build problems introduced by change #3550.
+ [RT #33807]
+
3594. [maint] Update config.guess and config.sub. [RT #33816]
3593. [func] Update EDNS processing to better track remote server
new_srtt = (addr->entry->srtt / 10 * factor)
+ (rtt / 10 * (10 - factor));
- addr->entry->srtt = new_srtt;
- addr->srtt = new_srtt;
+ addr->entry->srtt = (unsigned int) new_srtt;
+ addr->srtt = (unsigned int) new_srtt;
if (addr->entry->expires == 0) {
isc_stdtime_get(&now);
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;
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;
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);
}
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);
}
#include <dns/zone.h>
#include <dns/zonekey.h>
+#ifndef WIN32
#include <sys/mman.h>
+#else
+#define PROT_READ 0x01
+#define PROT_WRITE 0x02
+#define MAP_PRIVATE 0x0002
+#define MAP_FAILED ((void *)-1)
+#endif
#ifdef DNS_RBTDB_VERSION64
#include "rbtdb64.h"
#include <dns/version.h>
LIBDNS_EXTERNAL_DATA const char dns_version[] = VERSION;
+LIBDNS_EXTERNAL_DATA const char dns_major[] = MAJOR;
+LIBDNS_EXTERNAL_DATA const char dns_mapapi[] = MAPAPI;
LIBDNS_EXTERNAL_DATA const unsigned int dns_libinterface = LIBINTERFACE;
LIBDNS_EXTERNAL_DATA const unsigned int dns_librevision = LIBREVISION;
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);
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);
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));
}
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));
}
{
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));
}
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));
}
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));
}
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);
}
REQUIRE(ISCAPI_APPCTX_VALID(ctx));
REQUIRE(taskmgr != NULL);
+#ifndef WIN32
if (isc_bind9)
isc__appctx_settaskmgr(ctx, taskmgr);
+#endif
ctx->methods->settaskmgr(ctx, taskmgr);
}
REQUIRE(ISCAPI_APPCTX_VALID(ctx));
REQUIRE(socketmgr != NULL);
+#ifndef WIN32
if (isc_bind9)
isc__appctx_setsocketmgr(ctx, socketmgr);
+#endif
ctx->methods->setsocketmgr(ctx, socketmgr);
}
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)
isc__app_unblock();
}
+
+#endif
#include <isc/magic.h>
#include <isc/result.h>
+#ifdef WIN32
+#define isc_app_start isc__app_start
+#define isc_app_onrun isc__app_onrun
+#define isc_app_run isc__app_run
+#define isc_app_shutdown isc__app_shutdown
+#define isc_app_reload isc__app_reload
+#define isc_app_finish isc__app_finish
+#define isc_app_block isc__app_block
+#define isc_app_unblock isc__app_unblock
+
+#endif
+
/***
*** Types
***/
/*%<
* We use either isc___mem (three underscores) or isc__mem (two) depending on
* whether it's for BIND9's internal purpose (with -DBIND9) or generic export
- * library. This condition is generally handled in isc/namespace.h, but for
- * Windows it doesn't work if it involves multiple times of macro expansion
- * (such as isc_mem to isc__mem then to isc___mem). The following definitions
- * are used to work around this portability issue. Right now, we don't support
- * the export library for Windows, so we always use the three-underscore
- * version.
- */
-#ifdef WIN32
-#define ISCMEMFUNC(sfx) isc___mem_ ## sfx
-#define ISCMEMPOOLFUNC(sfx) isc___mempool_ ## sfx
-#else
+ * library.
+ */
#define ISCMEMFUNC(sfx) isc__mem_ ## sfx
#define ISCMEMPOOLFUNC(sfx) isc__mempool_ ## sfx
-#endif
#define isc_mem_get(c, s) ISCMEMFUNC(get)((c), (s) _ISC_MEM_FILELINE)
#define isc_mem_allocate(c, s) ISCMEMFUNC(allocate)((c), (s) _ISC_MEM_FILELINE)
#include <isc/types.h>
#include <isc/xml.h>
+#ifdef WIN32
+
+/* from the old namespace.h */
+
+#define isc_socket_create isc__socket_create
+#define isc_socket_dup isc__socket_dup
+#define isc_socket_attach isc__socket_attach
+#define isc_socket_detach isc__socket_detach
+#define isc_socketmgr_create isc__socketmgr_create
+#define isc_socketmgr_create2 isc__socketmgr_create2
+#define isc_socketmgr_destroy isc__socketmgr_destroy
+#define isc_socket_open isc__socket_open
+#define isc_socket_close isc__socket_close
+#define isc_socket_recvv isc__socket_recvv
+#define isc_socket_recv isc__socket_recv
+#define isc_socket_recv2 isc__socket_recv2
+#define isc_socket_send isc__socket_send
+#define isc_socket_sendto isc__socket_sendto
+#define isc_socket_sendv isc__socket_sendv
+#define isc_socket_sendtov isc__socket_sendtov
+#define isc_socket_sendto2 isc__socket_sendto2
+#define isc_socket_cleanunix isc__socket_cleanunix
+#define isc_socket_permunix isc__socket_permunix
+#define isc_socket_bind isc__socket_bind
+#define isc_socket_filter isc__socket_filter
+#define isc_socket_listen isc__socket_listen
+#define isc_socket_accept isc__socket_accept
+#define isc_socket_connect isc__socket_connect
+#define isc_socket_getfd isc__socket_getfd
+#define isc_socket_getname isc__socket_getname
+#define isc_socket_gettag isc__socket_gettag
+#define isc_socket_getpeername isc__socket_getpeername
+#define isc_socket_getsockname isc__socket_getsockname
+#define isc_socket_cancel isc__socket_cancel
+#define isc_socket_gettype isc__socket_gettype
+#define isc_socket_isbound isc__socket_isbound
+#define isc_socket_ipv6only isc__socket_ipv6only
+#define isc_socket_setname isc__socket_setname
+#define isc_socketmgr_getmaxsockets isc__socketmgr_getmaxsockets
+#define isc_socketmgr_setstats isc__socketmgr_setstats
+#define isc_socketmgr_setreserved isc__socketmgr_setreserved
+#define isc__socketmgr_maxudp isc___socketmgr_maxudp
+#define isc_socket_fdwatchcreate isc__socket_fdwatchcreate
+#define isc_socket_fdwatchpoke isc__socket_fdwatchpoke
+#define isc_socket_dscp isc__socket_dscp
+
+#endif
+
ISC_LANG_BEGINDECLS
/***
}
}
+#ifndef WIN32
+
static isc_once_t register_once = ISC_ONCE_INIT;
static void
RUNTIME_CHECK(isc_once_do(®ister_once, do_register)
== ISC_R_SUCCESS);
}
+
+#endif
return (result);
}
+#ifndef WIN32
+
isc_result_t
isc_socketmgr_create(isc_mem_t *mctx, isc_socketmgr_t **managerp) {
isc_result_t result;
return (isc__socket_getpeername(sock, addressp));
}
+#endif
NTReportError
closelog
-isc___mem_allocate
-isc___mem_free
-isc___mem_get
-isc___mem_put
-isc___mem_putanddetach
-isc___mem_reallocate
-isc___mem_strdup
-isc___mempool_get
-isc___mempool_put
isc___socketmgr_maxudp
isc__app_block
isc__app_finish
isc__buffer_setactive
isc__buffer_subtract
isc__buffer_usedregion
-isc__mem_attach
-isc__mem_checkdestroyed
-isc__mem_create
-isc__mem_create2
-isc__mem_createx
-isc__mem_createx2
-isc__mem_destroy
-isc__mem_detach
-isc__mem_getname
-isc__mem_getquota
-isc__mem_gettag
-isc__mem_inuse
-isc__mem_isovermem
-isc__mem_maxinuse
-isc__mem_ondestroy
-isc__mem_references
-isc__mem_setdestroycheck
-isc__mem_setname
-isc__mem_setquota
-isc__mem_setwater
-isc__mem_stats
-isc__mem_total
-isc__mem_waterack
-isc__mempool_associatelock
-isc__mempool_create
-isc__mempool_destroy
-isc__mempool_getallocated
-isc__mempool_getfillcount
-isc__mempool_getfreecount
-isc__mempool_getfreemax
-isc__mempool_getmaxalloc
-isc__mempool_setfillcount
-isc__mempool_setfreemax
-isc__mempool_setmaxalloc
-isc__mempool_setname
+isc__mem_allocate
+isc__mem_free
+isc__mem_get
+isc__mem_put
+isc__mem_putanddetach
+isc__mem_reallocate
+isc__mem_strdup
+isc__mempool_get
+isc__mempool_put
isc__socket_accept
isc__socket_attach
isc__socket_bind
isc__socketmgr_setreserved
isc__socketmgr_setstats
isc__strerror
-isc__task_attach
-isc__task_beginexclusive
-isc__task_create
-isc__task_destroy
-isc__task_detach
-isc__task_endexclusive
-isc__task_getcurrenttime
isc__task_getname
isc__task_gettag
-isc__task_onshutdown
-isc__task_privilege
-isc__task_purge
-isc__task_purgeevent
-isc__task_purgerange
-isc__task_send
-isc__task_sendanddetach
-isc__task_setname
-isc__task_setprivilege
-isc__task_shutdown
-isc__task_unsend
isc__task_unsendrange
-isc__taskmgr_create
-isc__taskmgr_destroy
-isc__taskmgr_excltask
isc__taskmgr_mode
-isc__taskmgr_setexcltask
-isc__taskmgr_setmode
-isc__timer_attach
-isc__timer_create
-isc__timer_detach
-isc__timer_reset
-isc__timer_touch
-isc__timermgr_create
-isc__timermgr_destroy
-isc__timermgr_poke
isc_assertion_failed
isc_assertion_setcallback
isc_assertion_typetotext
isc_md5_init
isc_md5_invalidate
isc_md5_update
+isc_mem_attach
+isc_mem_checkdestroyed
+isc_mem_create
+isc_mem_create2
+isc_mem_createx
+isc_mem_createx2
+isc_mem_destroy
+isc_mem_detach
+isc_mem_getname
+isc_mem_getquota
+isc_mem_gettag
+isc_mem_inuse
+isc_mem_isovermem
+isc_mem_maxinuse
+isc_mem_ondestroy
+isc_mem_references
isc_mem_renderxml
+isc_mem_setdestroycheck
+isc_mem_setname
+isc_mem_setquota
+isc_mem_setwater
+isc_mem_stats
+isc_mem_total
+isc_mem_waterack
+isc_mempool_associatelock
+isc_mempool_create
+isc_mempool_destroy
+isc_mempool_getallocated
+isc_mempool_getfillcount
+isc_mempool_getfreecount
+isc_mempool_getfreemax
+isc_mempool_getmaxalloc
+isc_mempool_setfillcount
+isc_mempool_setfreemax
+isc_mempool_setmaxalloc
+isc_mempool_setname
isc_msgcat_close
isc_msgcat_get
isc_msgcat_open
isc_symtab_lookup
isc_symtab_undefine
isc_syslog_facilityfromstring
+isc_task_attach
+isc_task_beginexclusive
+isc_task_create
+isc_task_destroy
+isc_task_detach
+isc_task_endexclusive
+isc_task_getcurrenttime
+isc_task_onshutdown
+isc_task_privilege
+isc_task_purge
+isc_task_purgeevent
+isc_task_purgerange
+isc_task_send
+isc_task_sendanddetach
+isc_task_setname
+isc_task_setprivilege
+isc_task_shutdown
+isc_task_unsend
+isc_taskmgr_create
+isc_taskmgr_destroy
+isc_taskmgr_excltask
isc_taskmgr_renderxml
+isc_taskmgr_setexcltask
+isc_taskmgr_setmode
isc_taskpool_create
isc_taskpool_destroy
isc_taskpool_expand
isc_time_set
isc_time_settoepoch
isc_time_subtract
+isc_timer_attach
+isc_timer_create
+isc_timer_detach
+isc_timer_reset
+isc_timer_touch
+isc_timermgr_create
+isc_timermgr_destroy
+isc_timermgr_poke
isc_win32os_majorversion
isc_win32os_minorversion
isc_win32os_servicepackmajor
EXPORTS
+isc_bind9 DATA
isc_commandline_argument DATA
isc_commandline_errprint DATA
isc_commandline_index DATA
# End Source File
# Begin Source File
-SOURCE=.\crc64.c
-# End Source File
-# Begin Source File
-
SOURCE=.\dir.c
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=..\include\isc\bind9.h
+# End Source File
+# Begin Source File
+
SOURCE=.\include\isc\bind_registry.h
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=..\bind9.c
+# End Source File
+# Begin Source File
+
SOURCE=..\bitstring.c
# End Source File
# Begin Source File
# End Source File
# Begin Source File
+SOURCE=..\crc64.c
+# End Source File
+# Begin Source File
+
SOURCE=..\error.c
# End Source File
# Begin Source File
-@erase "$(INTDIR)\backtrace-emptytbl.obj"
-@erase "$(INTDIR)\base32.obj"
-@erase "$(INTDIR)\base64.obj"
+ -@erase "$(INTDIR)\bind9.obj"
-@erase "$(INTDIR)\bitstring.obj"
-@erase "$(INTDIR)\buffer.obj"
-@erase "$(INTDIR)\bufferlist.obj"
LINK32_OBJS= \
"$(INTDIR)\app.obj" \
"$(INTDIR)\condition.obj" \
- "$(INTDIR)\crc64.obj" \
"$(INTDIR)\dir.obj" \
"$(INTDIR)\DLLMain.obj" \
"$(INTDIR)\entropy.obj" \
"$(INTDIR)\backtrace-emptytbl.obj" \
"$(INTDIR)\base32.obj" \
"$(INTDIR)\base64.obj" \
+ "$(INTDIR)\bind9.obj" \
"$(INTDIR)\bitstring.obj" \
"$(INTDIR)\buffer.obj" \
"$(INTDIR)\bufferlist.obj" \
"$(INTDIR)\commandline.obj" \
+ "$(INTDIR)\crc64.obj" \
"$(INTDIR)\error.obj" \
"$(INTDIR)\event.obj" \
"$(INTDIR)\hash.obj" \
-@erase "$(INTDIR)\base32.sbr"
-@erase "$(INTDIR)\base64.obj"
-@erase "$(INTDIR)\base64.sbr"
+ -@erase "$(INTDIR)\bind9.obj"
+ -@erase "$(INTDIR)\bind9.sbr"
-@erase "$(INTDIR)\bitstring.obj"
-@erase "$(INTDIR)\bitstring.sbr"
-@erase "$(INTDIR)\buffer.obj"
BSC32_SBRS= \
"$(INTDIR)\app.sbr" \
"$(INTDIR)\condition.sbr" \
- "$(INTDIR)\crc64.sbr" \
"$(INTDIR)\dir.sbr" \
"$(INTDIR)\DLLMain.sbr" \
"$(INTDIR)\entropy.sbr" \
"$(INTDIR)\backtrace-emptytbl.sbr" \
"$(INTDIR)\base32.sbr" \
"$(INTDIR)\base64.sbr" \
+ "$(INTDIR)\bind9.sbr" \
"$(INTDIR)\bitstring.sbr" \
"$(INTDIR)\buffer.sbr" \
"$(INTDIR)\bufferlist.sbr" \
"$(INTDIR)\commandline.sbr" \
+ "$(INTDIR)\crc64.sbr" \
"$(INTDIR)\error.sbr" \
"$(INTDIR)\event.sbr" \
"$(INTDIR)\hash.sbr" \
LINK32_OBJS= \
"$(INTDIR)\app.obj" \
"$(INTDIR)\condition.obj" \
- "$(INTDIR)\crc64.obj" \
"$(INTDIR)\dir.obj" \
"$(INTDIR)\DLLMain.obj" \
"$(INTDIR)\entropy.obj" \
"$(INTDIR)\backtrace-emptytbl.obj" \
"$(INTDIR)\base32.obj" \
"$(INTDIR)\base64.obj" \
+ "$(INTDIR)\bind9.obj" \
"$(INTDIR)\bitstring.obj" \
"$(INTDIR)\buffer.obj" \
"$(INTDIR)\bufferlist.obj" \
"$(INTDIR)\commandline.obj" \
+ "$(INTDIR)\crc64.obj" \
"$(INTDIR)\error.obj" \
"$(INTDIR)\event.obj" \
"$(INTDIR)\hash.obj" \
"$(INTDIR)\condition.obj" "$(INTDIR)\condition.sbr" : $(SOURCE) "$(INTDIR)"
-!ENDIF
-
-SOURCE=.\crc64.c
-
-!IF "$(CFG)" == "libisc - Win32 Release"
-
-
-"$(INTDIR)\crc64.obj" : $(SOURCE) "$(INTDIR)"
-
-
-!ELSEIF "$(CFG)" == "libisc - Win32 Debug"
-
-
-"$(INTDIR)\crc64.obj" "$(INTDIR)\crc64.sbr" : $(SOURCE) "$(INTDIR)"
-
-
!ENDIF
SOURCE=.\dir.c
$(CPP) $(CPP_PROJ) $(SOURCE)
+!ENDIF
+
+SOURCE=..\bind9.c
+
+!IF "$(CFG)" == "libisc - Win32 Release"
+
+
+"$(INTDIR)\bind9.obj" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
+!ELSEIF "$(CFG)" == "libisc - Win32 Debug"
+
+
+"$(INTDIR)\bind9.obj" "$(INTDIR)\bind9.sbr" : $(SOURCE) "$(INTDIR)"
+ $(CPP) $(CPP_PROJ) $(SOURCE)
+
+
!ENDIF
SOURCE=..\bitstring.c
$(CPP) $(CPP_PROJ) $(SOURCE)
+!ENDIF
+
+SOURCE=..\crc64.c
+
+!IF "$(CFG)" == "libisc - Win32 Release"
+
+
+"$(INTDIR)\crc64.obj" : $(SOURCE) "$(INTDIR)"
+
+
+!ELSEIF "$(CFG)" == "libisc - Win32 Debug"
+
+
+"$(INTDIR)\crc64.obj" "$(INTDIR)\crc64.sbr" : $(SOURCE) "$(INTDIR)"
+
+
!ENDIF
SOURCE=..\error.c
}
close(VERSIONFILE);
+# And the mapapi one
+
+open (MAPAPIFILE, "../lib/dns/mapapi");
+while (<MAPAPIFILE>) {
+ chomp;
+ ($data) = split(/\#/);
+ if($data) {
+ ($name, $value) = split(/=/,$data);
+ ($name) = split(/\s+/, $name);
+ if ($name eq 'MAPAPI') {
+ ($value) =~ s/^["\s]+//;
+ ($value) =~ s/["\s]+$//;
+ } else {
+ ($value) = split(/\s+/, $value);
+ }
+ $Mapapi = $value;
+ }
+}
+close(MAPAPIFILE);
+
# Now set up the output version file
$ThisDate = scalar localtime();
print OUTVERSIONFILE "#define PRODUCT \"$Versions{'PRODUCT'}\"\n\n";
print OUTVERSIONFILE "#define DESCRIPTION \"$Versions{'DESCRIPTION'}\"\n\n";
+print OUTVERSIONFILE "#define MAJOR \"$Versions{'MAJORVER'}.$Versions{'MINORVER'}\"\n\n";
+print OUTVERSIONFILE "#define MAPAPI \"$Mapapi\"\n\n";
+
foreach $dir (@dirlist) {
$apifile = "../lib/$dir/api";
open (APIVERSION, $apifile);