remove bind9 port. no longer maintained. also comes with 3.3.
This commit is contained in:
parent
d692b4b7b9
commit
234300f0f0
@ -1,82 +0,0 @@
|
||||
# $OpenBSD: Makefile,v 1.42 2003/04/10 18:08:56 jsyn Exp $
|
||||
|
||||
COMMENT= "ISC BIND 9 libraries"
|
||||
COMMENT-server= "ISC BIND 9 server"
|
||||
|
||||
VERSION= 9.2.2rc1
|
||||
DISTNAME= bind-${VERSION}
|
||||
|
||||
FULLPKGNAME= bind-lib-${VERSION}
|
||||
PKGNAME-server= bind-server-${VERSION}
|
||||
|
||||
CATEGORIES= net
|
||||
|
||||
MASTER_SITES+= ftp://ftp.isc.org/isc/bind9/${VERSION}/ \
|
||||
ftp://ftp.epix.net/pub/isc/bind9/${VERSION}/ \
|
||||
ftp://ftp.nominum.com/pub/isc/bind9/${VERSION}/ \
|
||||
ftp://ftp.sunet.se/pub/network/isc/bind9/${VERSION}/ \
|
||||
ftp://ftp.funet.fi/pub/mirrors/ftp.isc.org/isc/bind9/${VERSION}/ \
|
||||
ftp://ftp.iij.ad.jp/pub/network/isc/bind9/${VERSION}/ \
|
||||
|
||||
HOMEPAGE= http://www.isc.org/products/BIND/
|
||||
|
||||
MAINTAINER= Jakob Schlyter <jakob@openbsd.org>
|
||||
|
||||
PERMIT_PACKAGE_CDROM= Yes
|
||||
PERMIT_PACKAGE_FTP= Yes
|
||||
PERMIT_DISTFILES_CDROM= Yes
|
||||
PERMIT_DISTFILES_FTP= Yes
|
||||
|
||||
.if ${MACHINE_ARCH:Msparc64}
|
||||
CFLAGS+= -fno-stack-protector
|
||||
.endif
|
||||
|
||||
SEPARATE_BUILD= concurrent
|
||||
CONFIGURE_STYLE= autoconf
|
||||
CONFIGURE_ARGS+= --with-libtool ${CONFIGURE_SHARED} \
|
||||
--localstatedir=/var \
|
||||
--disable-libbind \
|
||||
--with-openssl=/usr \
|
||||
--with-randomdev=/dev/arandom
|
||||
AUTOCONF_NEW= Yes
|
||||
|
||||
MODGNU_CONFIG_GUESS_DIRS= ${WRKSRC}
|
||||
|
||||
REGRESS_TARGET= test
|
||||
|
||||
MULTI_PACKAGES= -server
|
||||
SUBPACKAGE?=
|
||||
|
||||
FLAVORS= static threads
|
||||
FLAVOR?=
|
||||
|
||||
.if ${SUBPACKAGE} == "-server" && ${FLAVOR} != "static"
|
||||
RUN_DEPENDS= :bind-lib-${VERSION}:net/bind9
|
||||
.endif
|
||||
|
||||
.if ${FLAVOR:L:Mstatic}
|
||||
CFLAGS+= "-static"
|
||||
NO_SHARED_LIBS= Yes
|
||||
.endif
|
||||
|
||||
.if ${FLAVOR:L:Mthreads}
|
||||
CONFIGURE_ARGS+= --enable-threads
|
||||
.else
|
||||
CONFIGURE_ARGS+= --disable-threads
|
||||
.endif
|
||||
|
||||
MISCDOCFILES= dnssec ipv6 migration migration-4to9 \
|
||||
options rfc-compliance roadmap sdb
|
||||
|
||||
post-extract:
|
||||
rm -fr ${WRKSRC}/lib/bind
|
||||
|
||||
post-install:
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/arm
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/share/doc/bind9/misc
|
||||
${INSTALL_DATA} ${WRKSRC}/doc/arm/*.html ${PREFIX}/share/doc/bind9/arm
|
||||
.for file in ${MISCDOCFILES}
|
||||
${INSTALL_DATA} ${WRKSRC}/doc/misc/${file} ${PREFIX}/share/doc/bind9/misc
|
||||
.endfor
|
||||
|
||||
.include <bsd.port.mk>
|
@ -1,3 +0,0 @@
|
||||
MD5 (bind-9.2.2rc1.tar.gz) = e591be8890c53845133577ac7e042fb6
|
||||
RMD160 (bind-9.2.2rc1.tar.gz) = ae607a8ee7080460896d36ab288688c02e1ff316
|
||||
SHA1 (bind-9.2.2rc1.tar.gz) = 2d1d980a2d55adb744288bb25eb0d94b14535da1
|
@ -1,23 +0,0 @@
|
||||
$OpenBSD: patch-acconfig_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- acconfig.h.orig Tue Oct 23 01:28:07 2001
|
||||
+++ acconfig.h Tue Jan 21 08:55:10 2003
|
||||
@@ -67,6 +67,9 @@
|
||||
/* define if chroot() is available */
|
||||
#undef HAVE_CHROOT
|
||||
|
||||
+/* define if tzset() is available */
|
||||
+#undef HAVE_TZSET
|
||||
+
|
||||
/* define if struct addrinfo exists */
|
||||
#undef HAVE_ADDRINFO
|
||||
|
||||
@@ -75,6 +78,9 @@
|
||||
|
||||
/* define if gai_strerror() exists */
|
||||
#undef HAVE_GAISTRERROR
|
||||
+
|
||||
+/* define if arc4random() exists */
|
||||
+#undef HAVE_ARC4RANDOM
|
||||
|
||||
/* define if pthread_setconcurrency() should be called to tell the
|
||||
* OS how many threads we might want to run.
|
@ -1,31 +0,0 @@
|
||||
$OpenBSD: patch-bin_dig_dig_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/dig/dig.c.orig Tue Mar 12 04:55:57 2002
|
||||
+++ bin/dig/dig.c Tue Jan 21 08:55:12 2003
|
||||
@@ -162,6 +162,8 @@ help(void) {
|
||||
" -c class (specify query class)\n"
|
||||
" -k keyfile (specify tsig key file)\n"
|
||||
" -y name:key (specify named base64 tsig key)\n"
|
||||
+" -4 (force IPv4 query transport)\n"
|
||||
+" -6 (force IPv6 query transport)\n"
|
||||
" d-opt is of the form +keyword[=value], where keyword is:\n"
|
||||
" +[no]vc (TCP mode)\n"
|
||||
" +[no]tcp (TCP mode, alternate syntax)\n"
|
||||
@@ -911,6 +913,18 @@ dash_option(char *option, char *next, di
|
||||
return (ISC_FALSE);
|
||||
case 'n':
|
||||
nibble = ISC_TRUE;
|
||||
+ return (ISC_FALSE);
|
||||
+ case '4':
|
||||
+ if (have_ipv4)
|
||||
+ have_ipv6 = ISC_FALSE;
|
||||
+ else
|
||||
+ fatal("can't find v4 networking");
|
||||
+ return (ISC_FALSE);
|
||||
+ case '6':
|
||||
+ if (have_ipv6)
|
||||
+ have_ipv4 = ISC_FALSE;
|
||||
+ else
|
||||
+ fatal("can't find v6 networking");
|
||||
return (ISC_FALSE);
|
||||
}
|
||||
if (value == NULL)
|
@ -1,37 +0,0 @@
|
||||
$OpenBSD: patch-bin_dig_dighost_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/dig/dighost.c.orig Tue Aug 6 04:40:11 2002
|
||||
+++ bin/dig/dighost.c Tue Jan 21 08:55:12 2003
|
||||
@@ -54,6 +54,7 @@
|
||||
#include <isc/netaddr.h>
|
||||
#include <isc/netdb.h>
|
||||
#include <isc/print.h>
|
||||
+#include <isc/random.h>
|
||||
#include <isc/result.h>
|
||||
#include <isc/string.h>
|
||||
#include <isc/task.h>
|
||||
@@ -689,7 +690,6 @@ setup_libs(void) {
|
||||
* just use random() now for getting id values, but doing so
|
||||
* does NOT ensure that id's can't be guessed.
|
||||
*/
|
||||
- srandom(getpid());
|
||||
|
||||
result = isc_net_probeipv4();
|
||||
if (result == ISC_R_SUCCESS)
|
||||
@@ -1162,6 +1162,7 @@ insert_soa(dig_lookup_t *lookup) {
|
||||
void
|
||||
setup_lookup(dig_lookup_t *lookup) {
|
||||
isc_result_t result;
|
||||
+ isc_uint32_t id;
|
||||
int len;
|
||||
dig_server_t *serv;
|
||||
dig_query_t *query;
|
||||
@@ -1275,7 +1276,8 @@ setup_lookup(dig_lookup_t *lookup) {
|
||||
trying(store, lookup);
|
||||
INSIST(dns_name_isabsolute(lookup->name));
|
||||
|
||||
- lookup->sendmsg->id = (unsigned short)(random() & 0xFFFF);
|
||||
+ isc_random_get(&id);
|
||||
+ lookup->sendmsg->id = (unsigned short)id & 0xFFFF;
|
||||
lookup->sendmsg->opcode = dns_opcode_query;
|
||||
lookup->msgcounter = 0;
|
||||
/*
|
@ -1,31 +0,0 @@
|
||||
$OpenBSD: patch-bin_named_include_named_globals_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/named/include/named/globals.h.orig Wed Aug 8 22:37:31 2001
|
||||
+++ bin/named/include/named/globals.h Tue Jan 21 08:55:12 2003
|
||||
@@ -45,6 +45,7 @@ EXTERN unsigned int ns_g_cpus INIT(0);
|
||||
EXTERN isc_taskmgr_t * ns_g_taskmgr INIT(NULL);
|
||||
EXTERN dns_dispatchmgr_t * ns_g_dispatchmgr INIT(NULL);
|
||||
EXTERN isc_entropy_t * ns_g_entropy INIT(NULL);
|
||||
+EXTERN isc_entropy_t * ns_g_fallbackentropy INIT(NULL);
|
||||
/*
|
||||
* XXXRTH We're going to want multiple timer managers eventually. One
|
||||
* for really short timers, another for client timers, and one
|
||||
@@ -97,7 +98,7 @@ EXTERN isc_resourcevalue_t ns_g_initopen
|
||||
* Misc.
|
||||
*/
|
||||
EXTERN isc_boolean_t ns_g_coreok INIT(ISC_TRUE);
|
||||
-EXTERN const char * ns_g_chrootdir INIT(NULL);
|
||||
+EXTERN const char * ns_g_chrootdir INIT("/var/named");
|
||||
EXTERN isc_boolean_t ns_g_foreground INIT(ISC_FALSE);
|
||||
EXTERN isc_boolean_t ns_g_logstderr INIT(ISC_FALSE);
|
||||
|
||||
@@ -105,7 +106,9 @@ EXTERN const char * ns_g_defaultpidfile
|
||||
"/run/named.pid");
|
||||
EXTERN const char * lwresd_g_defaultpidfile INIT(NS_LOCALSTATEDIR
|
||||
"/run/lwresd.pid");
|
||||
-EXTERN const char * ns_g_username INIT(NULL);
|
||||
+EXTERN const char * ns_g_pidfile INIT(NS_LOCALSTATEDIR
|
||||
+ "/run/named.pid");
|
||||
+EXTERN const char * ns_g_username INIT("named");
|
||||
|
||||
#undef EXTERN
|
||||
#undef INIT
|
@ -1,88 +0,0 @@
|
||||
$OpenBSD: patch-bin_named_main_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/named/main.c.orig Mon Aug 5 08:57:01 2002
|
||||
+++ bin/named/main.c Tue Jan 21 08:55:12 2003
|
||||
@@ -228,7 +228,7 @@ usage(void) {
|
||||
fprintf(stderr,
|
||||
"usage: named [-c conffile] [-d debuglevel] "
|
||||
"[-f|-g] [-n number_of_cpus]\n"
|
||||
- " [-p port] [-s] [-t chrootdir] [-u username]\n");
|
||||
+ " [-p port] [-s] [-t chrootdir] [-u username] [-i pidfile]\n");
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -325,9 +325,8 @@ parse_command_line(int argc, char *argv[
|
||||
ns_g_foreground = ISC_TRUE;
|
||||
ns_g_logstderr = ISC_TRUE;
|
||||
break;
|
||||
- /* XXXBEW -i should be removed */
|
||||
case 'i':
|
||||
- lwresd_g_defaultpidfile = isc_commandline_argument;
|
||||
+ ns_g_pidfile = isc_commandline_argument;
|
||||
break;
|
||||
case 'l':
|
||||
ns_g_lwresdonly = ISC_TRUE;
|
||||
@@ -441,6 +440,9 @@ destroy_managers(void) {
|
||||
ns_lwresd_shutdown();
|
||||
|
||||
isc_entropy_detach(&ns_g_entropy);
|
||||
+ if (ns_g_fallbackentropy != NULL) {
|
||||
+ isc_entropy_detach(&ns_g_fallbackentropy);
|
||||
+ }
|
||||
/*
|
||||
* isc_taskmgr_destroy() will block until all tasks have exited,
|
||||
*/
|
||||
@@ -453,6 +455,12 @@ static void
|
||||
setup(void) {
|
||||
isc_result_t result;
|
||||
|
||||
+ /*
|
||||
+ * Write pidfile before chroot if specified on the command line
|
||||
+ */
|
||||
+ if (ns_g_pidfile != NULL)
|
||||
+ ns_os_preopenpidfile(ns_g_pidfile);
|
||||
+
|
||||
/*
|
||||
* Get the user and group information before changing the root
|
||||
* directory, so the administrator does not need to keep a copy
|
||||
@@ -460,6 +468,32 @@ setup(void) {
|
||||
*/
|
||||
ns_os_inituserinfo(ns_g_username);
|
||||
|
||||
+ /*
|
||||
+ * Initialize time conversion information and /dev/null
|
||||
+ */
|
||||
+ ns_os_tzset();
|
||||
+ ns_os_opendevnull();
|
||||
+
|
||||
+ /*
|
||||
+ * Initialize system's random device as fallback entropy source
|
||||
+ * if running chroot'ed.
|
||||
+ */
|
||||
+ result = isc_entropy_create(ns_g_mctx, &ns_g_fallbackentropy);
|
||||
+ if (result != ISC_R_SUCCESS)
|
||||
+ ns_main_earlyfatal("isc_entropy_create() failed: %s",
|
||||
+ isc_result_totext(result));
|
||||
+#ifdef PATH_RANDOMDEV
|
||||
+ if (ns_g_chrootdir != NULL) {
|
||||
+ result = isc_entropy_createfilesource(ns_g_fallbackentropy,
|
||||
+ PATH_RANDOMDEV);
|
||||
+ if (result != ISC_R_SUCCESS)
|
||||
+ ns_main_earlywarning("could not open pre-chroot "
|
||||
+ "entropy source %s: %s",
|
||||
+ PATH_RANDOMDEV,
|
||||
+ isc_result_totext(result));
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
ns_os_chroot(ns_g_chrootdir);
|
||||
|
||||
/*
|
||||
@@ -611,6 +645,8 @@ main(int argc, char *argv[]) {
|
||||
isc_mem_destroy(&ns_g_mctx);
|
||||
|
||||
isc_app_finish();
|
||||
+
|
||||
+ ns_os_closedevnull();
|
||||
|
||||
ns_os_shutdown();
|
||||
|
@ -1,60 +0,0 @@
|
||||
$OpenBSD: patch-bin_named_server_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/named/server.c.orig Wed Jul 10 06:27:23 2002
|
||||
+++ bin/named/server.c Tue Jan 21 08:55:12 2003
|
||||
@@ -1956,7 +1956,7 @@ load_configuration(const char *filename,
|
||||
const char *randomdev = cfg_obj_asstring(obj);
|
||||
result = isc_entropy_createfilesource(ns_g_entropy,
|
||||
randomdev);
|
||||
- if (result != ISC_R_SUCCESS)
|
||||
+ if (result != ISC_R_SUCCESS && ns_g_chrootdir == NULL) {
|
||||
isc_log_write(ns_g_lctx,
|
||||
NS_LOGCATEGORY_GENERAL,
|
||||
NS_LOGMODULE_SERVER,
|
||||
@@ -1965,6 +1965,22 @@ load_configuration(const char *filename,
|
||||
"%s: %s",
|
||||
randomdev,
|
||||
isc_result_totext(result));
|
||||
+ }
|
||||
+#ifdef PATH_RANDOMDEV
|
||||
+ if (result != ISC_R_SUCCESS && ns_g_chrootdir != NULL) {
|
||||
+ isc_log_write(ns_g_lctx,
|
||||
+ NS_LOGCATEGORY_GENERAL,
|
||||
+ NS_LOGMODULE_SERVER,
|
||||
+ ISC_LOG_INFO,
|
||||
+ "using pre-chroot entropy source "
|
||||
+ "%s",
|
||||
+ PATH_RANDOMDEV);
|
||||
+ isc_entropy_detach(&ns_g_entropy);
|
||||
+ isc_entropy_attach(ns_g_fallbackentropy,
|
||||
+ &ns_g_entropy);
|
||||
+
|
||||
+ }
|
||||
+#endif
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2049,13 +2065,17 @@ load_configuration(const char *filename,
|
||||
}
|
||||
}
|
||||
|
||||
- obj = NULL;
|
||||
- if (ns_config_get(maps, "pid-file", &obj) == ISC_R_SUCCESS)
|
||||
- ns_os_writepidfile(cfg_obj_asstring(obj), first_time);
|
||||
- else if (ns_g_lwresdonly)
|
||||
- ns_os_writepidfile(lwresd_g_defaultpidfile, first_time);
|
||||
- else
|
||||
- ns_os_writepidfile(ns_g_defaultpidfile, first_time);
|
||||
+ if (ns_g_pidfile != NULL) {
|
||||
+ ns_os_writepidfile(ns_g_pidfile, first_time);
|
||||
+ } else {
|
||||
+ obj = NULL;
|
||||
+ if (ns_config_get(maps, "pid-file", &obj) == ISC_R_SUCCESS)
|
||||
+ ns_os_writepidfile(cfg_obj_asstring(obj), first_time);
|
||||
+ else if (ns_g_lwresdonly)
|
||||
+ ns_os_writepidfile(lwresd_g_defaultpidfile, first_time);
|
||||
+ else
|
||||
+ ns_os_writepidfile(ns_g_defaultpidfile, first_time);
|
||||
+ }
|
||||
|
||||
obj = NULL;
|
||||
result = ns_config_get(maps, "statistics-file", &obj);
|
@ -1,32 +0,0 @@
|
||||
$OpenBSD: patch-bin_named_unix_include_named_os_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/named/unix/include/named/os.h.orig Mon Aug 5 08:57:03 2002
|
||||
+++ bin/named/unix/include/named/os.h Tue Jan 21 08:55:13 2003
|
||||
@@ -29,6 +29,12 @@ void
|
||||
ns_os_daemonize(void);
|
||||
|
||||
void
|
||||
+ns_os_opendevnull(void);
|
||||
+
|
||||
+void
|
||||
+ns_os_closedevnull(void);
|
||||
+
|
||||
+void
|
||||
ns_os_chroot(const char *root);
|
||||
|
||||
void
|
||||
@@ -41,9 +47,15 @@ void
|
||||
ns_os_minprivs(void);
|
||||
|
||||
void
|
||||
+ns_os_preopenpidfile(const char *filename);
|
||||
+
|
||||
+void
|
||||
ns_os_writepidfile(const char *filename, isc_boolean_t first_time);
|
||||
|
||||
void
|
||||
ns_os_shutdown(void);
|
||||
+
|
||||
+void
|
||||
+ns_os_tzset(void);
|
||||
|
||||
#endif /* NS_OS_H */
|
@ -1,181 +0,0 @@
|
||||
$OpenBSD: patch-bin_named_unix_os_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/named/unix/os.c.orig Mon Aug 5 08:57:03 2002
|
||||
+++ bin/named/unix/os.c Tue Jan 21 08:55:13 2003
|
||||
@@ -43,6 +43,9 @@
|
||||
#include <named/os.h>
|
||||
|
||||
static char *pidfile = NULL;
|
||||
+static int pidfilefd = -1;
|
||||
+static isc_boolean_t preopenpidfile = ISC_FALSE;
|
||||
+static int devnullfd = -1;
|
||||
|
||||
/*
|
||||
* If there's no <linux/capability.h>, we don't care about <sys/prctl.h>
|
||||
@@ -288,7 +291,6 @@ ns_os_init(const char *progname) {
|
||||
void
|
||||
ns_os_daemonize(void) {
|
||||
pid_t pid;
|
||||
- int fd;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
|
||||
pid = fork();
|
||||
@@ -322,21 +324,35 @@ ns_os_daemonize(void) {
|
||||
* and will end up closing the wrong FD. This will be fixed eventually,
|
||||
* and these calls will be removed.
|
||||
*/
|
||||
- fd = open("/dev/null", O_RDWR, 0);
|
||||
- if (fd != -1) {
|
||||
- close(STDIN_FILENO);
|
||||
- (void)dup2(fd, STDIN_FILENO);
|
||||
- close(STDOUT_FILENO);
|
||||
- (void)dup2(fd, STDOUT_FILENO);
|
||||
- close(STDERR_FILENO);
|
||||
- (void)dup2(fd, STDERR_FILENO);
|
||||
- if (fd != STDIN_FILENO &&
|
||||
- fd != STDOUT_FILENO &&
|
||||
- fd != STDERR_FILENO)
|
||||
- (void)close(fd);
|
||||
+ if (devnullfd != -1) {
|
||||
+ if (devnullfd != STDIN_FILENO) {
|
||||
+ (void)close(STDIN_FILENO);
|
||||
+ (void)dup2(devnullfd, STDIN_FILENO);
|
||||
+ }
|
||||
+ if (devnullfd != STDOUT_FILENO) {
|
||||
+ (void)close(STDOUT_FILENO);
|
||||
+ (void)dup2(devnullfd, STDOUT_FILENO);
|
||||
+ }
|
||||
+ if (devnullfd != STDERR_FILENO) {
|
||||
+ (void)close(STDERR_FILENO);
|
||||
+ (void)dup2(devnullfd, STDERR_FILENO);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
||||
+void
|
||||
+ns_os_opendevnull(void) {
|
||||
+ devnullfd = open("/dev/null", O_RDWR, 0);
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+ns_os_closedevnull(void) {
|
||||
+ if (devnullfd != STDIN_FILENO &&
|
||||
+ devnullfd != STDOUT_FILENO &&
|
||||
+ devnullfd != STDERR_FILENO)
|
||||
+ close(devnullfd);
|
||||
+}
|
||||
+
|
||||
static isc_boolean_t
|
||||
all_digits(const char *s) {
|
||||
if (*s == '\0')
|
||||
@@ -468,19 +484,13 @@ cleanup_pidfile(void) {
|
||||
pidfile = NULL;
|
||||
}
|
||||
|
||||
-void
|
||||
-ns_os_writepidfile(const char *filename, isc_boolean_t first_time) {
|
||||
+static int
|
||||
+open_pidfile(const char *filename, isc_boolean_t first_time) {
|
||||
int fd;
|
||||
- FILE *lockfile;
|
||||
size_t len;
|
||||
- pid_t pid;
|
||||
char strbuf[ISC_STRERRORSIZE];
|
||||
void (*report)(const char *, ...);
|
||||
|
||||
- /*
|
||||
- * The caller must ensure any required synchronization.
|
||||
- */
|
||||
-
|
||||
report = first_time ? ns_main_earlyfatal : ns_main_earlywarning;
|
||||
|
||||
cleanup_pidfile();
|
||||
@@ -490,7 +500,7 @@ ns_os_writepidfile(const char *filename,
|
||||
if (pidfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("couldn't malloc '%s': %s", filename, strbuf);
|
||||
- return;
|
||||
+ return -1;
|
||||
}
|
||||
/* This is safe. */
|
||||
strcpy(pidfile, filename);
|
||||
@@ -501,15 +511,46 @@ ns_os_writepidfile(const char *filename,
|
||||
(*report)("couldn't open pid file '%s': %s", filename, strbuf);
|
||||
free(pidfile);
|
||||
pidfile = NULL;
|
||||
- return;
|
||||
+ return -1;
|
||||
}
|
||||
+
|
||||
+ return fd;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+ns_os_preopenpidfile(const char *filename) {
|
||||
+ pidfilefd = open_pidfile(filename, ISC_TRUE);
|
||||
+ preopenpidfile = ISC_TRUE;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+ns_os_writepidfile(const char *filename, isc_boolean_t first_time) {
|
||||
+ int fd;
|
||||
+ FILE *lockfile;
|
||||
+ pid_t pid;
|
||||
+ char strbuf[ISC_STRERRORSIZE];
|
||||
+ void (*report)(const char *, ...);
|
||||
+
|
||||
+ /*
|
||||
+ * The caller must ensure any required synchronization.
|
||||
+ */
|
||||
+
|
||||
+ report = first_time ? ns_main_earlyfatal : ns_main_earlywarning;
|
||||
+
|
||||
+ if (preopenpidfile == ISC_TRUE)
|
||||
+ fd = pidfilefd;
|
||||
+ else
|
||||
+ fd = open_pidfile(filename, first_time);
|
||||
+
|
||||
+ if (fd < 0) return;
|
||||
+
|
||||
lockfile = fdopen(fd, "w");
|
||||
if (lockfile == NULL) {
|
||||
isc__strerror(errno, strbuf, sizeof(strbuf));
|
||||
(*report)("could not fdopen() pid file '%s': %s",
|
||||
filename, strbuf);
|
||||
(void)close(fd);
|
||||
- cleanup_pidfile();
|
||||
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
|
||||
return;
|
||||
}
|
||||
#ifdef HAVE_LINUXTHREADS
|
||||
@@ -520,20 +561,28 @@ ns_os_writepidfile(const char *filename,
|
||||
if (fprintf(lockfile, "%ld\n", (long)pid) < 0) {
|
||||
(*report)("fprintf() to pid file '%s' failed", filename);
|
||||
(void)fclose(lockfile);
|
||||
- cleanup_pidfile();
|
||||
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
|
||||
return;
|
||||
}
|
||||
if (fflush(lockfile) == EOF) {
|
||||
(*report)("fflush() to pid file '%s' failed", filename);
|
||||
(void)fclose(lockfile);
|
||||
- cleanup_pidfile();
|
||||
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
|
||||
return;
|
||||
}
|
||||
(void)fclose(lockfile);
|
||||
+ if (preopenpidfile == ISC_TRUE) pidfilefd = -1;
|
||||
}
|
||||
|
||||
void
|
||||
ns_os_shutdown(void) {
|
||||
closelog();
|
||||
- cleanup_pidfile();
|
||||
+ if (preopenpidfile == ISC_FALSE) cleanup_pidfile();
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+ns_os_tzset(void) {
|
||||
+#ifdef HAVE_TZSET
|
||||
+ tzset();
|
||||
+#endif
|
||||
}
|
@ -1,30 +0,0 @@
|
||||
$OpenBSD: patch-bin_rndc_rndc_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/rndc/rndc.c.orig Thu Nov 29 00:37:50 2001
|
||||
+++ bin/rndc/rndc.c Tue Jan 21 08:55:13 2003
|
||||
@@ -32,6 +32,7 @@
|
||||
#include <isc/log.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/netdb.h>
|
||||
+#include <isc/random.h>
|
||||
#include <isc/socket.h>
|
||||
#include <isc/stdtime.h>
|
||||
#include <isc/string.h>
|
||||
@@ -251,6 +252,7 @@ rndc_connected(isc_task_t *task, isc_eve
|
||||
isccc_region_t message;
|
||||
isc_region_t r;
|
||||
isc_uint32_t len;
|
||||
+ isc_uint32_t serial;
|
||||
isc_buffer_t b;
|
||||
isc_result_t result;
|
||||
|
||||
@@ -260,8 +262,8 @@ rndc_connected(isc_task_t *task, isc_eve
|
||||
fatal("connect failed: %s", isc_result_totext(sevent->result));
|
||||
|
||||
isc_stdtime_get(&now);
|
||||
- srandom(now + isc_thread_self());
|
||||
- DO("create message", isccc_cc_createmessage(1, NULL, NULL, random(),
|
||||
+ isc_random_get(&serial);
|
||||
+ DO("create message", isccc_cc_createmessage(1, NULL, NULL, serial,
|
||||
now, now + 60, &request));
|
||||
data = isccc_alist_lookup(request, "_data");
|
||||
if (data == NULL)
|
@ -1,30 +0,0 @@
|
||||
$OpenBSD: patch-bin_tests_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/tests/Makefile.in.orig Tue Feb 12 13:02:05 2002
|
||||
+++ bin/tests/Makefile.in Tue Jan 21 08:55:13 2003
|
||||
@@ -66,6 +66,7 @@ XTARGETS = adb_test \
|
||||
inter_test \
|
||||
journalprint \
|
||||
keyboard_test \
|
||||
+ lcg_test \
|
||||
lex_test \
|
||||
lfsr_test \
|
||||
log_test \
|
||||
@@ -104,6 +105,7 @@ SRCS = adb_test.c \
|
||||
inter_test.c \
|
||||
journalprint.c \
|
||||
keyboard_test.c \
|
||||
+ lcg_test.c \
|
||||
lex_test.c \
|
||||
lfsr_test.c \
|
||||
log_test.c \
|
||||
@@ -150,6 +152,10 @@ byaddr_test: byaddr_test.@O@ ${ISCDEPLIB
|
||||
byname_test: byname_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
|
||||
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ byname_test.@O@ \
|
||||
${DNSLIBS} ${ISCLIBS} ${LIBS}
|
||||
+
|
||||
+lcg_test: lcg_test.@O@ ${ISCDEPLIBS}
|
||||
+ ${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ lcg_test.@O@ \
|
||||
+ ${ISCLIBS} ${LIBS}
|
||||
|
||||
lex_test: lex_test.@O@ ${ISCDEPLIBS}
|
||||
${LIBTOOL} ${PURIFY} ${CC} ${CFLAGS} -o $@ lex_test.@O@ \
|
@ -1,19 +0,0 @@
|
||||
$OpenBSD: patch-bin_tests_genrandom_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/tests/genrandom.c.orig Tue Jan 9 22:41:04 2001
|
||||
+++ bin/tests/genrandom.c Tue Jan 21 08:55:13 2003
|
||||
@@ -47,9 +47,15 @@ main(int argc, char **argv) {
|
||||
exit(1);
|
||||
}
|
||||
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
srand(0x12345678);
|
||||
+#endif
|
||||
while (bytes > 0) {
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
unsigned short int x = (rand() & 0xFFFF);
|
||||
+#else
|
||||
+ unsigned short int x = (arc4random() & 0xFFFF);
|
||||
+#endif
|
||||
unsigned char c = x & 0xFF;
|
||||
if (putc(c, fp) == EOF) {
|
||||
printf("error writing to file\n");
|
@ -1,50 +0,0 @@
|
||||
$OpenBSD: patch-bin_tests_lcg_test_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- bin/tests/lcg_test.c.orig Tue Jan 21 08:55:13 2003
|
||||
+++ bin/tests/lcg_test.c Tue Jan 21 08:55:13 2003
|
||||
@@ -0,0 +1,46 @@
|
||||
+/*
|
||||
+ * Copyright (C) 2002 Jakob Schlyter
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
||||
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/* $OpenBSD: patch-bin_tests_lcg_test_c,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
|
||||
+
|
||||
+#include <config.h>
|
||||
+
|
||||
+#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+#include <isc/lcg.h>
|
||||
+
|
||||
+int
|
||||
+main(int argc, char **argv) {
|
||||
+ int i, n;
|
||||
+ isc_uint16_t val;
|
||||
+ isc_lcg_t lcg;
|
||||
+
|
||||
+ if (argc > 1)
|
||||
+ n = atoi(argv[1]);
|
||||
+ else
|
||||
+ n = 10;
|
||||
+
|
||||
+ isc_lcg_init(&lcg);
|
||||
+
|
||||
+ for (i=0; i<n; i++) {
|
||||
+ val = isc_lcg_generate16(&lcg);
|
||||
+ printf("%06d\n", val);
|
||||
+ }
|
||||
+
|
||||
+ return (0);
|
||||
+}
|
@ -1,23 +0,0 @@
|
||||
$OpenBSD: patch-config_h_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- config.h.in.orig Tue Oct 23 01:28:08 2001
|
||||
+++ config.h.in Tue Jan 21 08:55:10 2003
|
||||
@@ -78,6 +78,9 @@
|
||||
/* define if chroot() is available */
|
||||
#undef HAVE_CHROOT
|
||||
|
||||
+/* define if tzset() is available */
|
||||
+#undef HAVE_TZSET
|
||||
+
|
||||
/* define if struct addrinfo exists */
|
||||
#undef HAVE_ADDRINFO
|
||||
|
||||
@@ -86,6 +89,9 @@
|
||||
|
||||
/* define if gai_strerror() exists */
|
||||
#undef HAVE_GAISTRERROR
|
||||
+
|
||||
+/* define if arc4random() exists */
|
||||
+#undef HAVE_ARC4RANDOM
|
||||
|
||||
/* define if pthread_setconcurrency() should be called to tell the
|
||||
* OS how many threads we might want to run.
|
@ -1,27 +0,0 @@
|
||||
$OpenBSD: patch-configure_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- configure.in.orig Thu Aug 8 11:09:22 2002
|
||||
+++ configure.in Tue Jan 21 08:55:11 2003
|
||||
@@ -479,6 +479,11 @@ case "$use_randomdev" in
|
||||
esac
|
||||
|
||||
#
|
||||
+# Do we have arc4random() ?
|
||||
+#
|
||||
+AC_CHECK_FUNC(arc4random, AC_DEFINE(HAVE_ARC4RANDOM))
|
||||
+
|
||||
+#
|
||||
# Begin pthreads checking.
|
||||
#
|
||||
# First, decide whether to use multithreading or not.
|
||||
@@ -1470,6 +1475,11 @@ case "$enable_linux_caps" in
|
||||
;;
|
||||
esac
|
||||
AC_CHECK_HEADERS(sys/prctl.h)
|
||||
+
|
||||
+#
|
||||
+# Time Zone Stuff
|
||||
+#
|
||||
+AC_CHECK_FUNC(tzset, AC_DEFINE(HAVE_TZSET))
|
||||
|
||||
#
|
||||
# BSD/OS, and perhaps some others, don't define rlim_t.
|
@ -1,83 +0,0 @@
|
||||
$OpenBSD: patch-lib_dns_dispatch_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/dns/dispatch.c.orig Wed May 8 08:38:14 2002
|
||||
+++ lib/dns/dispatch.c Tue Jan 21 08:55:13 2003
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <stdlib.h>
|
||||
|
||||
#include <isc/entropy.h>
|
||||
-#include <isc/lfsr.h>
|
||||
+#include <isc/lcg.h>
|
||||
#include <isc/mem.h>
|
||||
#include <isc/mutex.h>
|
||||
#include <isc/print.h>
|
||||
@@ -45,8 +45,7 @@ typedef struct dns_qid {
|
||||
unsigned int qid_nbuckets; /* hash table size */
|
||||
unsigned int qid_increment; /* id increment on collision */
|
||||
isc_mutex_t lock;
|
||||
- isc_lfsr_t qid_lfsr1; /* state generator info */
|
||||
- isc_lfsr_t qid_lfsr2; /* state generator info */
|
||||
+ isc_lcg_t qid_lcg; /* state generator info */
|
||||
dns_displist_t *qid_table; /* the table itself */
|
||||
} dns_qid_t;
|
||||
|
||||
@@ -256,36 +255,14 @@ request_log(dns_dispatch_t *disp, dns_di
|
||||
}
|
||||
}
|
||||
|
||||
-static void
|
||||
-reseed_lfsr(isc_lfsr_t *lfsr, void *arg)
|
||||
-{
|
||||
- dns_dispatchmgr_t *mgr = arg;
|
||||
- isc_result_t result;
|
||||
- isc_uint32_t val;
|
||||
-
|
||||
- REQUIRE(VALID_DISPATCHMGR(mgr));
|
||||
-
|
||||
- if (mgr->entropy != NULL) {
|
||||
- result = isc_entropy_getdata(mgr->entropy, &val, sizeof val,
|
||||
- NULL, 0);
|
||||
- INSIST(result == ISC_R_SUCCESS);
|
||||
- lfsr->count = (val & 0x1f) + 32;
|
||||
- lfsr->state = val;
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- lfsr->count = (random() & 0x1f) + 32; /* From 32 to 63 states */
|
||||
- lfsr->state = random();
|
||||
-}
|
||||
-
|
||||
/*
|
||||
* Return an unpredictable message ID.
|
||||
*/
|
||||
static dns_messageid_t
|
||||
dns_randomid(dns_qid_t *qid) {
|
||||
- isc_uint32_t id;
|
||||
+ isc_uint16_t id;
|
||||
|
||||
- id = isc_lfsr_generate32(&qid->qid_lfsr1, &qid->qid_lfsr2);
|
||||
+ id = isc_lcg_generate16(&qid->qid_lcg);
|
||||
|
||||
return (dns_messageid_t)(id & 0xFFFF);
|
||||
}
|
||||
@@ -1304,20 +1281,7 @@ qid_allocate(dns_dispatchmgr_t *mgr, uns
|
||||
qid->qid_increment = increment;
|
||||
qid->magic = QID_MAGIC;
|
||||
|
||||
- /*
|
||||
- * Initialize to a 32-bit LFSR. Both of these are from Applied
|
||||
- * Cryptography.
|
||||
- *
|
||||
- * lfsr1:
|
||||
- * x^32 + x^7 + x^5 + x^3 + x^2 + x + 1
|
||||
- *
|
||||
- * lfsr2:
|
||||
- * x^32 + x^7 + x^6 + x^2 + 1
|
||||
- */
|
||||
- isc_lfsr_init(&qid->qid_lfsr1, 0, 32, 0x80000057U,
|
||||
- 0, reseed_lfsr, mgr);
|
||||
- isc_lfsr_init(&qid->qid_lfsr2, 0, 32, 0x800000c2U,
|
||||
- 0, reseed_lfsr, mgr);
|
||||
+ isc_lcg_init(&qid->qid_lcg);
|
||||
*qidp = qid;
|
||||
return (ISC_R_SUCCESS);
|
||||
}
|
@ -1,16 +0,0 @@
|
||||
$OpenBSD: patch-lib_dns_rdataset_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/dns/rdataset.c.orig Tue Jun 5 11:23:14 2001
|
||||
+++ lib/dns/rdataset.c Tue Jan 21 08:55:13 2003
|
||||
@@ -363,7 +363,11 @@ towiresorted(dns_rdataset_t *rdataset, d
|
||||
/*
|
||||
* "Cyclic" order.
|
||||
*/
|
||||
- unsigned int j = (((unsigned int)rand()) >> 3) % count;
|
||||
+ isc_uint32_t val;
|
||||
+ unsigned int j;
|
||||
+
|
||||
+ isc_random_get(&val);
|
||||
+ j = val % count;
|
||||
for (i = 0; i < count; i++) {
|
||||
sorted[j].key = 0; /* Unused */
|
||||
sorted[j].rdata = &shuffled[i];
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/Makefile.in.orig Tue Oct 23 01:28:13 2001
|
||||
+++ lib/isc/Makefile.in Tue Jan 21 08:55:13 2003
|
||||
@@ -53,7 +53,7 @@ OBJS = @ISC_EXTRA_OBJS@ \
|
||||
assertions.@O@ base64.@O@ bitstring.@O@ buffer.@O@ \
|
||||
bufferlist.@O@ commandline.@O@ error.@O@ event.@O@ \
|
||||
heap.@O@ hex.@O@ hmacmd5.@O@ \
|
||||
- lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
|
||||
+ lcg.@O@ lex.@O@ lfsr.@O@ lib.@O@ log.@O@ \
|
||||
md5.@O@ mem.@O@ mutexblock.@O@ netaddr.@O@ ondestroy.@O@ \
|
||||
quota.@O@ random.@O@ \
|
||||
ratelimiter.@O@ result.@O@ rwlock.@O@ \
|
||||
@@ -66,7 +66,7 @@ SRCS = @ISC_EXTRA_SRCS@ \
|
||||
assertions.c base64.c bitstring.c buffer.c \
|
||||
bufferlist.c commandline.c error.c event.c \
|
||||
heap.c hex.c hmacmd5.c \
|
||||
- lex.c lfsr.c lib.c log.c \
|
||||
+ lcg.c lex.c lfsr.c lib.c log.c \
|
||||
md5.c mem.c mutexblock.c netaddr.c ondestroy.c \
|
||||
quota.c random.c \
|
||||
ratelimiter.c result.c rwlock.c \
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_include_isc_Makefile_in,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/include/isc/Makefile.in.orig Sat Jul 7 00:11:40 2001
|
||||
+++ lib/isc/include/isc/Makefile.in Tue Jan 21 08:55:13 2003
|
||||
@@ -30,7 +30,7 @@ HEADERS = app.h assertions.h base64.h bi
|
||||
bufferlist.h commandline.h entropy.h error.h event.h \
|
||||
eventclass.h \
|
||||
file.h formatcheck.h fsaccess.h heap.h hex.h hmacmd5.h \
|
||||
- interfaceiter.h @ISC_IPV6_H@ lang.h lex.h \
|
||||
+ interfaceiter.h @ISC_IPV6_H@ lang.h lcg.h lex.h \
|
||||
lfsr.h lib.h list.h log.h magic.h md5.h mem.h msgcat.h msgs.h \
|
||||
mutexblock.h netaddr.h ondestroy.h os.h \
|
||||
print.h quota.h random.h ratelimiter.h \
|
@ -1,102 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_include_isc_lcg_h,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/include/isc/lcg.h.orig Tue Jan 21 08:55:13 2003
|
||||
+++ lib/isc/include/isc/lcg.h Tue Jan 21 08:55:13 2003
|
||||
@@ -0,0 +1,98 @@
|
||||
+/*
|
||||
+ * Portions Copyright (C) 2002 Internet Software Consortium.
|
||||
+ * Portions Copyright (C) 1997 Niels Provos.
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
||||
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/* $OpenBSD: patch-lib_isc_include_isc_lcg_h,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
|
||||
+
|
||||
+/*
|
||||
+ * Theo de Raadt <deraadt@openbsd.org> came up with the idea of using
|
||||
+ * such a mathematical system to generate more random (yet non-repeating)
|
||||
+ * ids to solve the resolver/named problem. But Niels designed the
|
||||
+ * actual system based on the constraints.
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * seed = random 15bit
|
||||
+ * n = prime, g0 = generator to n,
|
||||
+ * j = random so that gcd(j,n-1) == 1
|
||||
+ * g = g0^j mod n will be a generator again.
|
||||
+ *
|
||||
+ * X[0] = random seed.
|
||||
+ * X[n] = a*X[n-1]+b mod m is a Linear Congruential Generator
|
||||
+ * with a = 7^(even random) mod m,
|
||||
+ * b = random with gcd(b,m) == 1
|
||||
+ * m = 31104 and a maximal period of m-1.
|
||||
+ *
|
||||
+ * The transaction id is determined by:
|
||||
+ * id[n] = seed xor (g^X[n] mod n)
|
||||
+ *
|
||||
+ * Effectivly the id is restricted to the lower 15 bits, thus
|
||||
+ * yielding two different cycles by toggling the msb on and off.
|
||||
+ * This avoids reuse issues caused by reseeding.
|
||||
+ *
|
||||
+ * The 16 bit space is very small and brute force attempts are
|
||||
+ * entirly feasible, we skip a random number of transaction ids
|
||||
+ * so that an attacker will not get sequential ids.
|
||||
+ */
|
||||
+
|
||||
+
|
||||
+#ifndef ISC_LCG_H
|
||||
+#define ISC_LCG_H 1
|
||||
+
|
||||
+#include <isc/lang.h>
|
||||
+#include <isc/types.h>
|
||||
+
|
||||
+typedef struct isc_lcg isc_lcg_t;
|
||||
+
|
||||
+struct isc_lcg {
|
||||
+ isc_uint16_t ru_x;
|
||||
+ isc_uint16_t ru_seed, ru_seed2;
|
||||
+ isc_uint16_t ru_a, ru_b;
|
||||
+ isc_uint16_t ru_g;
|
||||
+ isc_uint16_t ru_counter;
|
||||
+ isc_uint16_t ru_msb;
|
||||
+ isc_uint32_t ru_reseed;
|
||||
+ isc_uint32_t random;
|
||||
+};
|
||||
+
|
||||
+ISC_LANG_BEGINDECLS
|
||||
+
|
||||
+void
|
||||
+isc_lcg_init(isc_lcg_t *lcg);
|
||||
+/*
|
||||
+ * Initialize a Linear Congruential Generator
|
||||
+ *
|
||||
+ * Requires:
|
||||
+ *
|
||||
+ * lcg != NULL
|
||||
+ */
|
||||
+
|
||||
+isc_uint16_t
|
||||
+isc_lcg_generate16(isc_lcg_t *lcg);
|
||||
+/*
|
||||
+ * Get a random number from a Linear Congruential Generator
|
||||
+ *
|
||||
+ * Requires:
|
||||
+ *
|
||||
+ * lcg be valid.
|
||||
+ *
|
||||
+ * data != NULL.
|
||||
+ */
|
||||
+
|
||||
+ISC_LANG_ENDDECLS
|
||||
+
|
||||
+#endif /* ISC_LCG_H */
|
@ -1,177 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_lcg_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/lcg.c.orig Tue Jan 21 08:55:13 2003
|
||||
+++ lib/isc/lcg.c Tue Jan 21 08:55:13 2003
|
||||
@@ -0,0 +1,173 @@
|
||||
+/*
|
||||
+ * Portions Copyright (C) 2002 Internet Software Consortium.
|
||||
+ * Portions Copyright (C) 1997 Niels Provos.
|
||||
+ *
|
||||
+ * Permission to use, copy, modify, and distribute this software for any
|
||||
+ * purpose with or without fee is hereby granted, provided that the above
|
||||
+ * copyright notice and this permission notice appear in all copies.
|
||||
+ *
|
||||
+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM
|
||||
+ * DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL
|
||||
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL
|
||||
+ * INTERNET SOFTWARE CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
+ * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
|
||||
+ * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
|
||||
+ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
+ */
|
||||
+
|
||||
+/* $OpenBSD: patch-lib_isc_lcg_c,v 1.1 2003/01/25 14:14:37 jakob Exp $ */
|
||||
+
|
||||
+#include <config.h>
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+
|
||||
+#include <isc/lcg.h>
|
||||
+#include <isc/random.h>
|
||||
+#include <isc/time.h>
|
||||
+#include <isc/util.h>
|
||||
+
|
||||
+#define VALID_LCG(x) (x != NULL)
|
||||
+
|
||||
+#define RU_OUT 180 /* Time after wich will be reseeded */
|
||||
+#define RU_MAX 30000 /* Uniq cycle, avoid blackjack prediction */
|
||||
+#define RU_GEN 2 /* Starting generator */
|
||||
+#define RU_N 32749 /* RU_N-1 = 2*2*3*2729 */
|
||||
+#define RU_AGEN 7 /* determine ru_a as RU_AGEN^(2*rand) */
|
||||
+#define RU_M 31104 /* RU_M = 2^7*3^5 - don't change */
|
||||
+
|
||||
+#define PFAC_N 3
|
||||
+static const isc_uint16_t pfacts[PFAC_N] = {
|
||||
+ 2,
|
||||
+ 3,
|
||||
+ 2729
|
||||
+};
|
||||
+
|
||||
+/*
|
||||
+ * Do a fast modular exponation, returned value will be in the range
|
||||
+ * of 0 - (mod-1)
|
||||
+ */
|
||||
+static isc_uint16_t
|
||||
+pmod(isc_uint16_t gen, isc_uint16_t exp, isc_uint16_t mod)
|
||||
+{
|
||||
+ isc_uint16_t s, t, u;
|
||||
+
|
||||
+ s = 1;
|
||||
+ t = gen;
|
||||
+ u = exp;
|
||||
+
|
||||
+ while (u) {
|
||||
+ if (u & 1)
|
||||
+ s = (s*t) % mod;
|
||||
+ u >>= 1;
|
||||
+ t = (t*t) % mod;
|
||||
+ }
|
||||
+ return (s);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Initializes the seed and chooses a suitable generator. Also toggles
|
||||
+ * the msb flag. The msb flag is used to generate two distinct
|
||||
+ * cycles of random numbers and thus avoiding reuse of ids.
|
||||
+ *
|
||||
+ * This function is called from isc_lcg_generate() when needed, an
|
||||
+ * application does not have to worry about it.
|
||||
+ */
|
||||
+static void
|
||||
+reseed(isc_lcg_t *lcg)
|
||||
+{
|
||||
+ isc_time_t isctime;
|
||||
+ isc_boolean_t noprime = ISC_TRUE;
|
||||
+ isc_uint16_t j, i;
|
||||
+
|
||||
+ isc_random_get(&lcg->random);
|
||||
+ lcg->ru_x = (lcg->random & 0xFFFF) % RU_M;
|
||||
+
|
||||
+ /* 15 bits of random seed */
|
||||
+ lcg->ru_seed = (lcg->random >> 16) & 0x7FFF;
|
||||
+ isc_random_get(&lcg->random);
|
||||
+ lcg->ru_seed2 = lcg->random & 0x7FFF;
|
||||
+
|
||||
+ isc_random_get(&lcg->random);
|
||||
+
|
||||
+ /* Determine the LCG we use */
|
||||
+ lcg->ru_b = (lcg->random & 0xfffe) | 1;
|
||||
+ lcg->ru_a = pmod(RU_AGEN, (lcg->random >> 16) & 0xfffe, RU_M);
|
||||
+ while (lcg->ru_b % 3 == 0)
|
||||
+ lcg->ru_b += 2;
|
||||
+
|
||||
+ isc_random_get(&lcg->random);
|
||||
+ j = lcg->random % RU_N;
|
||||
+ lcg->random = lcg->random >> 16;
|
||||
+
|
||||
+ /*
|
||||
+ * Do a fast gcd(j,RU_N-1), so we can find a j with
|
||||
+ * gcd(j, RU_N-1) == 1, giving a new generator for
|
||||
+ * RU_GEN^j mod RU_N
|
||||
+ */
|
||||
+ while (noprime == ISC_TRUE) {
|
||||
+ for (i=0; i<PFAC_N; i++)
|
||||
+ if (j % pfacts[i] == 0)
|
||||
+ break;
|
||||
+
|
||||
+ if (i >= PFAC_N)
|
||||
+ noprime = ISC_FALSE;
|
||||
+ else
|
||||
+ j = (j+1) % RU_N;
|
||||
+ }
|
||||
+
|
||||
+ lcg->ru_g = pmod(RU_GEN, j, RU_N);
|
||||
+ lcg->ru_counter = 0;
|
||||
+
|
||||
+ isc_time_now(&isctime);
|
||||
+ lcg->ru_reseed = isc_time_seconds(&isctime) + RU_OUT;
|
||||
+ lcg->ru_msb = lcg->ru_msb == 0x8000 ? 0 : 0x8000;
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+isc_lcg_init(isc_lcg_t *lcg)
|
||||
+{
|
||||
+ REQUIRE(VALID_LCG(lcg));
|
||||
+
|
||||
+ lcg->ru_x = 0;
|
||||
+ lcg->ru_seed = 0;
|
||||
+ lcg->ru_seed2 = 0;
|
||||
+ lcg->ru_a = 0;
|
||||
+ lcg->ru_b = 0;
|
||||
+ lcg->ru_g = 0;
|
||||
+ lcg->ru_counter = 0;
|
||||
+ lcg->ru_msb = 0;
|
||||
+ lcg->ru_reseed = 0;
|
||||
+ lcg->random = 0;
|
||||
+}
|
||||
+
|
||||
+isc_uint16_t
|
||||
+isc_lcg_generate16(isc_lcg_t *lcg)
|
||||
+{
|
||||
+ isc_time_t isctime;
|
||||
+ int i, n;
|
||||
+
|
||||
+ REQUIRE(VALID_LCG(lcg));
|
||||
+
|
||||
+ isc_time_now(&isctime);
|
||||
+ if (lcg->ru_counter >= RU_MAX ||
|
||||
+ isc_time_seconds(&isctime) > lcg->ru_reseed)
|
||||
+ reseed(lcg);
|
||||
+
|
||||
+ if (! lcg->random)
|
||||
+ isc_random_get(&lcg->random);
|
||||
+
|
||||
+ /* Skip a random number of ids */
|
||||
+ n = lcg->random & 0x7; lcg->random = lcg->random >> 3;
|
||||
+ if (lcg->ru_counter + n >= RU_MAX)
|
||||
+ reseed(lcg);
|
||||
+
|
||||
+ for (i=0; i<=n; i++)
|
||||
+ /* Linear Congruential Generator */
|
||||
+ lcg->ru_x = (lcg->ru_a*lcg->ru_x + lcg->ru_b) % RU_M;
|
||||
+
|
||||
+ lcg->ru_counter += i;
|
||||
+
|
||||
+ return (lcg->ru_seed ^
|
||||
+ pmod(lcg->ru_g, lcg->ru_seed2 ^ lcg->ru_x, RU_N)) | lcg->ru_msb;
|
||||
+}
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_lfsr_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/lfsr.c.orig Tue Jan 9 22:56:11 2001
|
||||
+++ lib/isc/lfsr.c Tue Jan 21 08:55:13 2003
|
||||
@@ -74,7 +74,7 @@ lfsr_generate(isc_lfsr_t *lfsr)
|
||||
}
|
||||
|
||||
if (lfsr->state & 0x01) {
|
||||
- lfsr->state = ((lfsr->state ^ lfsr->tap) >> 1) | highbit;
|
||||
+ lfsr->state = (lfsr->state >> 1) ^ lfsr->tap;
|
||||
return (1);
|
||||
} else {
|
||||
lfsr->state >>= 1;
|
@ -1,47 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_random_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/random.c.orig Tue Jan 9 22:56:22 2001
|
||||
+++ lib/isc/random.c Tue Jan 21 08:55:13 2003
|
||||
@@ -33,7 +33,9 @@ static isc_once_t once = ISC_ONCE_INIT;
|
||||
static void
|
||||
initialize_rand(void)
|
||||
{
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
srand(time(NULL));
|
||||
+#endif
|
||||
}
|
||||
|
||||
static void
|
||||
@@ -47,7 +49,11 @@ isc_random_seed(isc_uint32_t seed)
|
||||
{
|
||||
initialize();
|
||||
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
srand(seed);
|
||||
+#else
|
||||
+ arc4random_addrandom((u_char *) &seed, sizeof(isc_uint32_t));
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
||||
@@ -57,7 +63,11 @@ isc_random_get(isc_uint32_t *val)
|
||||
|
||||
initialize();
|
||||
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
*val = rand();
|
||||
+#else
|
||||
+ *val = arc4random();
|
||||
+#endif
|
||||
}
|
||||
|
||||
isc_uint32_t
|
||||
@@ -66,5 +76,9 @@ isc_random_jitter(isc_uint32_t max, isc_
|
||||
if (jitter == 0)
|
||||
return (max);
|
||||
else
|
||||
+#ifndef HAVE_ARC4RANDOM
|
||||
return (max - rand() % jitter);
|
||||
+#else
|
||||
+ return (max - arc4random() % jitter);
|
||||
+#endif
|
||||
}
|
@ -1,107 +0,0 @@
|
||||
$OpenBSD: patch-lib_isc_sha1_c,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
--- lib/isc/sha1.c.orig Tue Jan 9 22:56:28 2001
|
||||
+++ lib/isc/sha1.c Tue Jan 21 08:55:13 2003
|
||||
@@ -85,6 +85,67 @@ typedef union {
|
||||
unsigned int l[16];
|
||||
} CHAR64LONG16;
|
||||
|
||||
+#ifdef __sparc_v9__
|
||||
+static void do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
|
||||
+static void do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
|
||||
+static void do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
|
||||
+static void do_R4(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *);
|
||||
+
|
||||
+#define nR0(v,w,x,y,z,i) R0(*v,*w,*x,*y,*z,i)
|
||||
+#define nR1(v,w,x,y,z,i) R1(*v,*w,*x,*y,*z,i)
|
||||
+#define nR2(v,w,x,y,z,i) R2(*v,*w,*x,*y,*z,i)
|
||||
+#define nR3(v,w,x,y,z,i) R3(*v,*w,*x,*y,*z,i)
|
||||
+#define nR4(v,w,x,y,z,i) R4(*v,*w,*x,*y,*z,i)
|
||||
+
|
||||
+static void
|
||||
+do_R01(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
|
||||
+{
|
||||
+ nR0(a,b,c,d,e, 0); nR0(e,a,b,c,d, 1); nR0(d,e,a,b,c, 2);
|
||||
+ nR0(c,d,e,a,b, 3); nR0(b,c,d,e,a, 4); nR0(a,b,c,d,e, 5);
|
||||
+ nR0(e,a,b,c,d, 6); nR0(d,e,a,b,c, 7); nR0(c,d,e,a,b, 8);
|
||||
+ nR0(b,c,d,e,a, 9); nR0(a,b,c,d,e,10); nR0(e,a,b,c,d,11);
|
||||
+ nR0(d,e,a,b,c,12); nR0(c,d,e,a,b,13); nR0(b,c,d,e,a,14);
|
||||
+ nR0(a,b,c,d,e,15); nR1(e,a,b,c,d,16); nR1(d,e,a,b,c,17);
|
||||
+ nR1(c,d,e,a,b,18); nR1(b,c,d,e,a,19);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_R2(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
|
||||
+{
|
||||
+ nR2(a,b,c,d,e,20); nR2(e,a,b,c,d,21); nR2(d,e,a,b,c,22);
|
||||
+ nR2(c,d,e,a,b,23); nR2(b,c,d,e,a,24); nR2(a,b,c,d,e,25);
|
||||
+ nR2(e,a,b,c,d,26); nR2(d,e,a,b,c,27); nR2(c,d,e,a,b,28);
|
||||
+ nR2(b,c,d,e,a,29); nR2(a,b,c,d,e,30); nR2(e,a,b,c,d,31);
|
||||
+ nR2(d,e,a,b,c,32); nR2(c,d,e,a,b,33); nR2(b,c,d,e,a,34);
|
||||
+ nR2(a,b,c,d,e,35); nR2(e,a,b,c,d,36); nR2(d,e,a,b,c,37);
|
||||
+ nR2(c,d,e,a,b,38); nR2(b,c,d,e,a,39);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_R3(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
|
||||
+{
|
||||
+ nR3(a,b,c,d,e,40); nR3(e,a,b,c,d,41); nR3(d,e,a,b,c,42);
|
||||
+ nR3(c,d,e,a,b,43); nR3(b,c,d,e,a,44); nR3(a,b,c,d,e,45);
|
||||
+ nR3(e,a,b,c,d,46); nR3(d,e,a,b,c,47); nR3(c,d,e,a,b,48);
|
||||
+ nR3(b,c,d,e,a,49); nR3(a,b,c,d,e,50); nR3(e,a,b,c,d,51);
|
||||
+ nR3(d,e,a,b,c,52); nR3(c,d,e,a,b,53); nR3(b,c,d,e,a,54);
|
||||
+ nR3(a,b,c,d,e,55); nR3(e,a,b,c,d,56); nR3(d,e,a,b,c,57);
|
||||
+ nR3(c,d,e,a,b,58); nR3(b,c,d,e,a,59);
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+do_R4(u_int32_t *a, u_int32_t *b, u_int32_t *c, u_int32_t *d, u_int32_t *e, CHAR64LONG16 *block)
|
||||
+{
|
||||
+ nR4(a,b,c,d,e,60); nR4(e,a,b,c,d,61); nR4(d,e,a,b,c,62);
|
||||
+ nR4(c,d,e,a,b,63); nR4(b,c,d,e,a,64); nR4(a,b,c,d,e,65);
|
||||
+ nR4(e,a,b,c,d,66); nR4(d,e,a,b,c,67); nR4(c,d,e,a,b,68);
|
||||
+ nR4(b,c,d,e,a,69); nR4(a,b,c,d,e,70); nR4(e,a,b,c,d,71);
|
||||
+ nR4(d,e,a,b,c,72); nR4(c,d,e,a,b,73); nR4(b,c,d,e,a,74);
|
||||
+ nR4(a,b,c,d,e,75); nR4(e,a,b,c,d,76); nR4(d,e,a,b,c,77);
|
||||
+ nR4(c,d,e,a,b,78); nR4(b,c,d,e,a,79);
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Hash a single 512-bit block. This is the core of the algorithm.
|
||||
*/
|
||||
@@ -92,12 +153,12 @@ static void
|
||||
transform(isc_uint32_t state[5], const unsigned char buffer[64]) {
|
||||
isc_uint32_t a, b, c, d, e;
|
||||
CHAR64LONG16 *block;
|
||||
- unsigned char workspace[64];
|
||||
+ CHAR64LONG16 workspace;
|
||||
|
||||
INSIST(buffer != NULL);
|
||||
INSIST(state != NULL);
|
||||
|
||||
- block = (CHAR64LONG16 *)(void *)workspace;
|
||||
+ block = &workspace;
|
||||
(void)memcpy(block, buffer, 64);
|
||||
|
||||
/* Copy context->state[] to working vars */
|
||||
@@ -107,6 +168,12 @@ transform(isc_uint32_t state[5], const u
|
||||
d = state[3];
|
||||
e = state[4];
|
||||
|
||||
+#ifdef __sparc_v9__
|
||||
+ do_R01(&a, &b, &c, &d, &e, block);
|
||||
+ do_R2(&a, &b, &c, &d, &e, block);
|
||||
+ do_R3(&a, &b, &c, &d, &e, block);
|
||||
+ do_R4(&a, &b, &c, &d, &e, block);
|
||||
+#else
|
||||
/* 4 rounds of 20 operations each. Loop unrolled. */
|
||||
R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
|
||||
R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
|
||||
@@ -128,6 +195,7 @@ transform(isc_uint32_t state[5], const u
|
||||
R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
|
||||
R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
|
||||
R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
|
||||
+#endif
|
||||
|
||||
/* Add the working vars back into context.state[] */
|
||||
state[0] += a;
|
@ -1,8 +0,0 @@
|
||||
BIND version 9 libraries, include files and API manual pages
|
||||
|
||||
Flavours:
|
||||
|
||||
static Do not include shared libraries
|
||||
threads Build a multi-threaded named
|
||||
|
||||
WWW: ${HOMEPAGE}
|
@ -1,11 +0,0 @@
|
||||
ISC BIND version 9 is a major rewrite of nearly all aspects of the
|
||||
underlying BIND architecture. This re-architecting of BIND was
|
||||
necessitated by the expected demands of domain name system growth, the
|
||||
need for secure queries and zone transfers as well as IP version 6.
|
||||
|
||||
Flavours:
|
||||
|
||||
static Do not use shared libraries
|
||||
threads Build a multi-threaded named
|
||||
|
||||
WWW: ${HOMEPAGE}
|
@ -1,7 +0,0 @@
|
||||
@comment $OpenBSD: PFRAG.shared,v 1.10 2003/01/25 14:14:37 jakob Exp $
|
||||
lib/libdns.so.8.0
|
||||
lib/libisc.so.6.0
|
||||
lib/libisccc.so.0.1
|
||||
lib/libisccfg.so.0.3
|
||||
lib/liblwres.so.2.1
|
||||
DYNLIBDIR(%D/lib)
|
@ -1,266 +0,0 @@
|
||||
@comment $OpenBSD: PLIST,v 1.15 2003/01/25 14:14:37 jakob Exp $
|
||||
bin/isc-config.sh
|
||||
include/dns/a6.h
|
||||
include/dns/acl.h
|
||||
include/dns/adb.h
|
||||
include/dns/byaddr.h
|
||||
include/dns/cache.h
|
||||
include/dns/callbacks.h
|
||||
include/dns/cert.h
|
||||
include/dns/compress.h
|
||||
include/dns/db.h
|
||||
include/dns/dbiterator.h
|
||||
include/dns/dbtable.h
|
||||
include/dns/diff.h
|
||||
include/dns/dispatch.h
|
||||
include/dns/dnssec.h
|
||||
include/dns/enumclass.h
|
||||
include/dns/enumtype.h
|
||||
include/dns/events.h
|
||||
include/dns/fixedname.h
|
||||
include/dns/journal.h
|
||||
include/dns/keyflags.h
|
||||
include/dns/keytable.h
|
||||
include/dns/keyvalues.h
|
||||
include/dns/lib.h
|
||||
include/dns/log.h
|
||||
include/dns/master.h
|
||||
include/dns/masterdump.h
|
||||
include/dns/message.h
|
||||
include/dns/name.h
|
||||
include/dns/ncache.h
|
||||
include/dns/nxt.h
|
||||
include/dns/peer.h
|
||||
include/dns/rbt.h
|
||||
include/dns/rcode.h
|
||||
include/dns/rdata.h
|
||||
include/dns/rdataclass.h
|
||||
include/dns/rdatalist.h
|
||||
include/dns/rdataset.h
|
||||
include/dns/rdatasetiter.h
|
||||
include/dns/rdataslab.h
|
||||
include/dns/rdatastruct.h
|
||||
include/dns/rdatatype.h
|
||||
include/dns/request.h
|
||||
include/dns/resolver.h
|
||||
include/dns/result.h
|
||||
include/dns/rootns.h
|
||||
include/dns/sdb.h
|
||||
include/dns/secalg.h
|
||||
include/dns/secproto.h
|
||||
include/dns/soa.h
|
||||
include/dns/ssu.h
|
||||
include/dns/tcpmsg.h
|
||||
include/dns/time.h
|
||||
include/dns/tkey.h
|
||||
include/dns/tsig.h
|
||||
include/dns/ttl.h
|
||||
include/dns/types.h
|
||||
include/dns/validator.h
|
||||
include/dns/view.h
|
||||
include/dns/xfrin.h
|
||||
include/dns/zone.h
|
||||
include/dns/zonekey.h
|
||||
include/dns/zt.h
|
||||
include/dst/dst.h
|
||||
include/dst/lib.h
|
||||
include/dst/result.h
|
||||
include/isc/app.h
|
||||
include/isc/assertions.h
|
||||
include/isc/base64.h
|
||||
include/isc/bitstring.h
|
||||
include/isc/boolean.h
|
||||
include/isc/buffer.h
|
||||
include/isc/bufferlist.h
|
||||
include/isc/commandline.h
|
||||
include/isc/condition.h
|
||||
include/isc/dir.h
|
||||
include/isc/entropy.h
|
||||
include/isc/error.h
|
||||
include/isc/event.h
|
||||
include/isc/eventclass.h
|
||||
include/isc/file.h
|
||||
include/isc/formatcheck.h
|
||||
include/isc/fsaccess.h
|
||||
include/isc/heap.h
|
||||
include/isc/hex.h
|
||||
include/isc/hmacmd5.h
|
||||
include/isc/int.h
|
||||
include/isc/interfaceiter.h
|
||||
include/isc/lang.h
|
||||
include/isc/lcg.h
|
||||
include/isc/lex.h
|
||||
include/isc/lfsr.h
|
||||
include/isc/lib.h
|
||||
include/isc/list.h
|
||||
include/isc/log.h
|
||||
include/isc/magic.h
|
||||
include/isc/md5.h
|
||||
include/isc/mem.h
|
||||
include/isc/msgcat.h
|
||||
include/isc/msgs.h
|
||||
include/isc/mutex.h
|
||||
include/isc/mutexblock.h
|
||||
include/isc/net.h
|
||||
include/isc/netaddr.h
|
||||
include/isc/netdb.h
|
||||
include/isc/offset.h
|
||||
include/isc/once.h
|
||||
include/isc/ondestroy.h
|
||||
include/isc/os.h
|
||||
include/isc/platform.h
|
||||
include/isc/print.h
|
||||
include/isc/quota.h
|
||||
include/isc/random.h
|
||||
include/isc/ratelimiter.h
|
||||
include/isc/refcount.h
|
||||
include/isc/region.h
|
||||
include/isc/resource.h
|
||||
include/isc/result.h
|
||||
include/isc/resultclass.h
|
||||
include/isc/rwlock.h
|
||||
include/isc/serial.h
|
||||
include/isc/sha1.h
|
||||
include/isc/sockaddr.h
|
||||
include/isc/socket.h
|
||||
include/isc/stdio.h
|
||||
include/isc/stdtime.h
|
||||
include/isc/string.h
|
||||
include/isc/symtab.h
|
||||
include/isc/syslog.h
|
||||
include/isc/task.h
|
||||
include/isc/taskpool.h
|
||||
include/isc/thread.h
|
||||
include/isc/time.h
|
||||
include/isc/timer.h
|
||||
include/isc/types.h
|
||||
include/isc/util.h
|
||||
include/isccc/alist.h
|
||||
include/isccc/base64.h
|
||||
include/isccc/cc.h
|
||||
include/isccc/ccmsg.h
|
||||
include/isccc/events.h
|
||||
include/isccc/lib.h
|
||||
include/isccc/result.h
|
||||
include/isccc/sexpr.h
|
||||
include/isccc/symtab.h
|
||||
include/isccc/symtype.h
|
||||
include/isccc/types.h
|
||||
include/isccc/util.h
|
||||
include/isccfg/cfg.h
|
||||
include/isccfg/check.h
|
||||
include/isccfg/log.h
|
||||
include/lwres/context.h
|
||||
include/lwres/int.h
|
||||
include/lwres/ipv6.h
|
||||
include/lwres/lang.h
|
||||
include/lwres/list.h
|
||||
include/lwres/lwbuffer.h
|
||||
include/lwres/lwpacket.h
|
||||
include/lwres/lwres.h
|
||||
include/lwres/net.h
|
||||
include/lwres/netdb.h
|
||||
include/lwres/platform.h
|
||||
include/lwres/result.h
|
||||
lib/libdns.a
|
||||
lib/libdns.la
|
||||
lib/libisc.a
|
||||
lib/libisc.la
|
||||
lib/libisccc.a
|
||||
lib/libisccc.la
|
||||
lib/libisccfg.a
|
||||
lib/libisccfg.la
|
||||
lib/liblwres.a
|
||||
lib/liblwres.la
|
||||
man/man3/lwres.3
|
||||
man/man3/lwres_addr_parse.3
|
||||
man/man3/lwres_buffer.3
|
||||
man/man3/lwres_buffer_add.3
|
||||
man/man3/lwres_buffer_back.3
|
||||
man/man3/lwres_buffer_clear.3
|
||||
man/man3/lwres_buffer_first.3
|
||||
man/man3/lwres_buffer_forward.3
|
||||
man/man3/lwres_buffer_getmem.3
|
||||
man/man3/lwres_buffer_getuint16.3
|
||||
man/man3/lwres_buffer_getuint32.3
|
||||
man/man3/lwres_buffer_getuint8.3
|
||||
man/man3/lwres_buffer_init.3
|
||||
man/man3/lwres_buffer_invalidate.3
|
||||
man/man3/lwres_buffer_putmem.3
|
||||
man/man3/lwres_buffer_putuint16.3
|
||||
man/man3/lwres_buffer_putuint32.3
|
||||
man/man3/lwres_buffer_putuint8.3
|
||||
man/man3/lwres_buffer_subtract.3
|
||||
man/man3/lwres_conf_clear.3
|
||||
man/man3/lwres_conf_get.3
|
||||
man/man3/lwres_conf_init.3
|
||||
man/man3/lwres_conf_parse.3
|
||||
man/man3/lwres_conf_print.3
|
||||
man/man3/lwres_config.3
|
||||
man/man3/lwres_context.3
|
||||
man/man3/lwres_context_allocmem.3
|
||||
man/man3/lwres_context_create.3
|
||||
man/man3/lwres_context_destroy.3
|
||||
man/man3/lwres_context_freemem.3
|
||||
man/man3/lwres_context_initserial.3
|
||||
man/man3/lwres_context_nextserial.3
|
||||
man/man3/lwres_context_sendrecv.3
|
||||
man/man3/lwres_endhostent.3
|
||||
man/man3/lwres_endhostent_r.3
|
||||
man/man3/lwres_freeaddrinfo.3
|
||||
man/man3/lwres_freehostent.3
|
||||
man/man3/lwres_gabn.3
|
||||
man/man3/lwres_gabnrequest_free.3
|
||||
man/man3/lwres_gabnrequest_parse.3
|
||||
man/man3/lwres_gabnrequest_render.3
|
||||
man/man3/lwres_gabnresponse_free.3
|
||||
man/man3/lwres_gabnresponse_parse.3
|
||||
man/man3/lwres_gabnresponse_render.3
|
||||
man/man3/lwres_gai_strerror.3
|
||||
man/man3/lwres_getaddrinfo.3
|
||||
man/man3/lwres_getaddrsbyname.3
|
||||
man/man3/lwres_gethostbyaddr.3
|
||||
man/man3/lwres_gethostbyaddr_r.3
|
||||
man/man3/lwres_gethostbyname.3
|
||||
man/man3/lwres_gethostbyname2.3
|
||||
man/man3/lwres_gethostbyname_r.3
|
||||
man/man3/lwres_gethostent.3
|
||||
man/man3/lwres_gethostent_r.3
|
||||
man/man3/lwres_getipnode.3
|
||||
man/man3/lwres_getipnodebyaddr.3
|
||||
man/man3/lwres_getipnodebyname.3
|
||||
man/man3/lwres_getnamebyaddr.3
|
||||
man/man3/lwres_getnameinfo.3
|
||||
man/man3/lwres_getrrsetbyname.3
|
||||
man/man3/lwres_gnba.3
|
||||
man/man3/lwres_gnbarequest_free.3
|
||||
man/man3/lwres_gnbarequest_parse.3
|
||||
man/man3/lwres_gnbarequest_render.3
|
||||
man/man3/lwres_gnbaresponse_free.3
|
||||
man/man3/lwres_gnbaresponse_parse.3
|
||||
man/man3/lwres_gnbaresponse_render.3
|
||||
man/man3/lwres_herror.3
|
||||
man/man3/lwres_hstrerror.3
|
||||
man/man3/lwres_inetntop.3
|
||||
man/man3/lwres_lwpacket_parseheader.3
|
||||
man/man3/lwres_lwpacket_renderheader.3
|
||||
man/man3/lwres_net_ntop.3
|
||||
man/man3/lwres_noop.3
|
||||
man/man3/lwres_nooprequest_free.3
|
||||
man/man3/lwres_nooprequest_parse.3
|
||||
man/man3/lwres_nooprequest_render.3
|
||||
man/man3/lwres_noopresponse_free.3
|
||||
man/man3/lwres_noopresponse_parse.3
|
||||
man/man3/lwres_noopresponse_render.3
|
||||
man/man3/lwres_packet.3
|
||||
man/man3/lwres_resutil.3
|
||||
man/man3/lwres_sethostent.3
|
||||
man/man3/lwres_sethostent_r.3
|
||||
man/man3/lwres_string_parse.3
|
||||
%%SHARED%%
|
||||
@dirrm include/lwres
|
||||
@dirrm include/isccfg
|
||||
@dirrm include/isccc
|
||||
@dirrm include/isc
|
||||
@dirrm include/dst
|
||||
@dirrm include/dns
|
@ -1,50 +0,0 @@
|
||||
@comment $OpenBSD: PLIST-server,v 1.1 2003/01/25 14:14:37 jakob Exp $
|
||||
bin/dig
|
||||
bin/host
|
||||
bin/nslookup
|
||||
bin/nsupdate
|
||||
man/man1/dig.1
|
||||
man/man1/host.1
|
||||
man/man5/rndc.conf.5
|
||||
man/man8/dnssec-keygen.8
|
||||
man/man8/dnssec-makekeyset.8
|
||||
man/man8/dnssec-signkey.8
|
||||
man/man8/dnssec-signzone.8
|
||||
man/man8/lwresd.8
|
||||
man/man8/named-checkconf.8
|
||||
man/man8/named-checkzone.8
|
||||
man/man8/named.8
|
||||
man/man8/nsupdate.8
|
||||
man/man8/rndc-confgen.8
|
||||
man/man8/rndc.8
|
||||
sbin/dnssec-keygen
|
||||
sbin/dnssec-makekeyset
|
||||
sbin/dnssec-signkey
|
||||
sbin/dnssec-signzone
|
||||
sbin/lwresd
|
||||
sbin/named
|
||||
sbin/named-checkconf
|
||||
sbin/named-checkzone
|
||||
sbin/rndc
|
||||
sbin/rndc-confgen
|
||||
share/doc/bind9/arm/Bv9ARM.ch01.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch02.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch03.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch04.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch05.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch06.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch07.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch08.html
|
||||
share/doc/bind9/arm/Bv9ARM.ch09.html
|
||||
share/doc/bind9/arm/Bv9ARM.html
|
||||
share/doc/bind9/misc/dnssec
|
||||
share/doc/bind9/misc/ipv6
|
||||
share/doc/bind9/misc/migration
|
||||
share/doc/bind9/misc/migration-4to9
|
||||
share/doc/bind9/misc/options
|
||||
share/doc/bind9/misc/rfc-compliance
|
||||
share/doc/bind9/misc/roadmap
|
||||
share/doc/bind9/misc/sdb
|
||||
@dirrm share/doc/bind9/misc
|
||||
@dirrm share/doc/bind9/arm
|
||||
@dirrm share/doc/bind9
|
Loading…
x
Reference in New Issue
Block a user