head	1.1;
branch	1.1.1;
access;
symbols
	RELENG_9_1_0_RELEASE:1.1.1.2
	RELENG_9_1:1.1.1.2.0.54
	RELENG_9_1_BP:1.1.1.2
	RELENG_8_3_0_RELEASE:1.1.1.2
	RELENG_8_3:1.1.1.2.0.52
	RELENG_8_3_BP:1.1.1.2
	RELENG_9_0_0_RELEASE:1.1.1.2
	RELENG_9_0:1.1.1.2.0.50
	RELENG_9_0_BP:1.1.1.2
	RELENG_9:1.1.1.2.0.48
	RELENG_9_BP:1.1.1.2
	RELENG_7_4_0_RELEASE:1.1.1.2
	RELENG_8_2_0_RELEASE:1.1.1.2
	RELENG_7_4:1.1.1.2.0.46
	RELENG_7_4_BP:1.1.1.2
	RELENG_8_2:1.1.1.2.0.44
	RELENG_8_2_BP:1.1.1.2
	RELENG_8_1_0_RELEASE:1.1.1.2
	RELENG_8_1:1.1.1.2.0.42
	RELENG_8_1_BP:1.1.1.2
	RELENG_7_3_0_RELEASE:1.1.1.2
	RELENG_7_3:1.1.1.2.0.40
	RELENG_7_3_BP:1.1.1.2
	RELENG_8_0_0_RELEASE:1.1.1.2
	RELENG_8_0:1.1.1.2.0.38
	RELENG_8_0_BP:1.1.1.2
	RELENG_8:1.1.1.2.0.36
	RELENG_8_BP:1.1.1.2
	RELENG_7_2_0_RELEASE:1.1.1.2
	RELENG_7_2:1.1.1.2.0.34
	RELENG_7_2_BP:1.1.1.2
	RELENG_7_1_0_RELEASE:1.1.1.2
	RELENG_6_4_0_RELEASE:1.1.1.2
	RELENG_7_1:1.1.1.2.0.32
	RELENG_7_1_BP:1.1.1.2
	RELENG_6_4:1.1.1.2.0.30
	RELENG_6_4_BP:1.1.1.2
	RELENG_7_0_0_RELEASE:1.1.1.2
	RELENG_6_3_0_RELEASE:1.1.1.2
	RELENG_7_0:1.1.1.2.0.28
	RELENG_7_0_BP:1.1.1.2
	RELENG_6_3:1.1.1.2.0.26
	RELENG_6_3_BP:1.1.1.2
	RELENG_7:1.1.1.2.0.24
	RELENG_7_BP:1.1.1.2
	RELENG_6_2_0_RELEASE:1.1.1.2
	RELENG_6_2:1.1.1.2.0.22
	RELENG_6_2_BP:1.1.1.2
	RELENG_5_5_0_RELEASE:1.1.1.2
	RELENG_5_5:1.1.1.2.0.20
	RELENG_5_5_BP:1.1.1.2
	RELENG_6_1_0_RELEASE:1.1.1.2
	RELENG_6_1:1.1.1.2.0.18
	RELENG_6_1_BP:1.1.1.2
	RELENG_6_0_0_RELEASE:1.1.1.2
	RELENG_6_0:1.1.1.2.0.16
	RELENG_6_0_BP:1.1.1.2
	RELENG_6:1.1.1.2.0.14
	RELENG_6_BP:1.1.1.2
	RELENG_5_4_0_RELEASE:1.1.1.2
	RELENG_5_4:1.1.1.2.0.12
	RELENG_5_4_BP:1.1.1.2
	RELENG_4_11_0_RELEASE:1.1.1.1.4.1
	RELENG_4_11:1.1.1.1.4.1.0.10
	RELENG_4_11_BP:1.1.1.1.4.1
	RELENG_5_3_0_RELEASE:1.1.1.2
	RELENG_5_3:1.1.1.2.0.10
	RELENG_5_3_BP:1.1.1.2
	RELENG_5:1.1.1.2.0.8
	RELENG_5_BP:1.1.1.2
	RELENG_4_10_0_RELEASE:1.1.1.1.4.1
	RELENG_4_10:1.1.1.1.4.1.0.8
	RELENG_4_10_BP:1.1.1.1.4.1
	RELENG_5_2_1_RELEASE:1.1.1.2
	RELENG_5_2_0_RELEASE:1.1.1.2
	RELENG_5_2:1.1.1.2.0.6
	RELENG_5_2_BP:1.1.1.2
	RELENG_4_9_0_RELEASE:1.1.1.1.4.1
	RELENG_4_9:1.1.1.1.4.1.0.6
	RELENG_4_9_BP:1.1.1.1.4.1
	RELENG_5_1_0_RELEASE:1.1.1.2
	RELENG_5_1:1.1.1.2.0.4
	RELENG_5_1_BP:1.1.1.2
	RELENG_4_8_0_RELEASE:1.1.1.1.4.1
	RELENG_4_8:1.1.1.1.4.1.0.4
	RELENG_4_8_BP:1.1.1.1.4.1
	RELENG_5_0_0_RELEASE:1.1.1.2
	RELENG_5_0:1.1.1.2.0.2
	RELENG_5_0_BP:1.1.1.2
	RELENG_4_7_0_RELEASE:1.1.1.1.4.1
	RELENG_4_7:1.1.1.1.4.1.0.2
	RELENG_4_7_BP:1.1.1.1.4.1
	RELENG_4_6_2_RELEASE:1.1.1.1
	RELENG_4_6_1_RELEASE:1.1.1.1
	RELENG_4_6_0_RELEASE:1.1.1.1
	RELENG_4_6:1.1.1.1.0.12
	RELENG_4_6_BP:1.1.1.1
	v8_3_2_t1b:1.1.1.1
	RELENG_4_5_0_RELEASE:1.1.1.1
	RELENG_4_5:1.1.1.1.0.10
	RELENG_4_5_BP:1.1.1.1
	RELENG_4_4_0_RELEASE:1.1.1.1
	RELENG_4_4:1.1.1.1.0.8
	RELENG_4_4_BP:1.1.1.1
	v8_2_4:1.1.1.1
	RELENG_4_3_0_RELEASE:1.1.1.1
	RELENG_4_3:1.1.1.1.0.6
	RELENG_4_3_BP:1.1.1.1
	v8_2_3:1.1.1.1
	RELENG_4_2_0_RELEASE:1.1.1.1
	v8_2_3_t6b:1.1.1.1
	ISC:1.1.1
	RELENG_4_1_1_RELEASE:1.1.1.1
	PRE_SMPNG:1.1.1.1
	RELENG_4_1_0_RELEASE:1.1.1.1
	RELENG_3_5_0_RELEASE:1.1.1.1.2.1
	RELENG_4_0_0_RELEASE:1.1.1.1
	RELENG_4:1.1.1.1.0.4
	RELENG_4_BP:1.1.1.1
	RELENG_3_4_0_RELEASE:1.1.1.1.2.1
	RELENG_3:1.1.1.1.0.2
	v8_2_2_p5:1.1.1.1;
locks; strict;
comment	@# @;


1.1
date	99.11.30.02.41.59;	author peter;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	99.11.30.02.41.59;	author peter;	state Exp;
branches
	1.1.1.1.2.1
	1.1.1.1.4.1;
next	1.1.1.2;

1.1.1.2
date	2002.07.01.01.28.00;	author dougb;	state dead;
branches;
next	;

1.1.1.1.2.1
date	99.12.13.15.05.58;	author peter;	state Exp;
branches;
next	;

1.1.1.1.4.1
date	2002.07.07.08.19.17;	author dougb;	state dead;
branches;
next	;


desc
@@


1.1
log
@Initial revision
@
text
@/*
 * We need a registy of name server addresses.  For each, we retain an RTT
 * and a list of name server names which have used this address.
 */
tree_t	*by_nsaddr;
struct by_nsaddr {
	u_int32_t	rtt;		/* measured. */
	char		**names;	/* NULL terminated array; strdup'd. */
};

/*
 * "struct server" is a name server, which can have many addresses.  There
 * is no central registry of servers, since each creator can have a different
 * idea of what the addresses are.
 */
struct server {
	char		*name;		/* made with strdup. */
	struct sockaddr_in *addrs;	/* counted array. */
	int		n_addrs;	/* array size. */
};

/*
 * "struct zone" is a zone cut.
 */
tree_t	*by_class;	/* zone[class]. */
struct zone {
	enum {master, slave, cache, boot}
			type;

	/* Servers learned from boot cache, a parent zone, or !auth answer. */
	struct server	*servers_notauth;

	/* Servers learned from authoritative answer or local zone. */
	struct server	*servers_auth;

	/* Root node of zone. */
	struct node	*root;
};

struct node {
	char		*label;		/* made with strdup. */
	tree_t		*subs;		/* subdomains (node[label]). */
	/* really this is "data" since for the zone cut tree we have no sets.*/
	tree_t		*rrsets;	/* rr sets (rrset[type]). */
};

struct rrset {
	rrtype		type;
	u_int32_t	ttl;
	u_char		data[1];	/* struct size constrains this. */
};
@


1.1.1.1
log
@Import bind v8.2.2.p5, minus the crypto for the time being.  The bind
package does have BXA export approval, but the licensing strings on the
dnssafe code are a bit unpleasant.  The crypto is easy to restore and bind
will run without it - just without full dnssec support.

Obtained from:	The Internet Software Consortium (www.isc.org)
@
text
@@


1.1.1.1.4.1
log
@MFC of version 8.3.3 import
@
text
@@


1.1.1.2
log
@I don't think we ever installed these files, and they are more
than a little dated.
@
text
@@


1.1.1.1.2.1
log
@MFC: bind 8.2.2.p5

Urged by:	imp, alfred, and a whole bunch of other folks.
Approved by:	jkh (a few days ago)
@
text
@@

