EXTERN isc_boolean_t ns_g_noedns INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_nosoa INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_noaa INIT(ISC_FALSE);
+EXTERN isc_boolean_t ns_g_keepstderr INIT(ISC_FALSE);
EXTERN unsigned int ns_g_delay INIT(0);
EXTERN isc_boolean_t ns_g_nonearest INIT(ISC_FALSE);
EXTERN isc_boolean_t ns_g_notcp INIT(ISC_FALSE);
else if (!strncmp(isc_commandline_argument, "tat=", 4))
ns_g_tat_interval =
atoi(isc_commandline_argument + 4);
+ else if (!strcmp(isc_commandline_argument,
+ "keepstderr"))
+ ns_g_keepstderr = ISC_TRUE;
else
fprintf(stderr, "unknown -T flag '%s\n",
isc_commandline_argument);
#include <isc/strerror.h>
#include <isc/string.h>
+#include <named/globals.h>
#include <named/main.h>
#include <named/os.h>
#ifdef HAVE_LIBSCF
(void)close(STDOUT_FILENO);
(void)dup2(devnullfd, STDOUT_FILENO);
}
- if (devnullfd != STDERR_FILENO) {
+ if (devnullfd != STDERR_FILENO && !ns_g_keepstderr) {
(void)close(STDERR_FILENO);
(void)dup2(devnullfd, STDERR_FILENO);
}