BSD 4_3 development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 4 Jun 1986 02:57:34 +0000 (18:57 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 4 Jun 1986 02:57:34 +0000 (18:57 -0800)
Work on file usr/src/etc/named/ns.h

Synthesized-from: CSRG/cd1/4.3

usr/src/etc/named/ns.h [new file with mode: 0644]

diff --git a/usr/src/etc/named/ns.h b/usr/src/etc/named/ns.h
new file mode 100644 (file)
index 0000000..41a9ae5
--- /dev/null
@@ -0,0 +1,105 @@
+/*     ns.h    4.3     86/06/04        */
+
+/*
+ * Copyright (c) 1985 Regents of the University of California
+ *     All Rights Reserved
+ */
+
+/*
+ * Global definitions and variables for the name server.
+ */
+
+#include <strings.h>
+#include <arpa/inet.h>
+
+/* MAXRETRY * RETRYTIME * #ns should be less than 1 minute or so */
+/* 3 * 8 * 3 = 72 seconds for 3 root domain servers */
+#define MAXNS          10              /* max number of NS's to try */
+#define RETRYTIME      8               /* time between retries */
+#define MAXRETRY       3               /* max number of retries per addr */
+#define MAXCNAMES      8               /* max # of CNAMES tried per addr */
+
+#define MAXZONES 32
+
+struct zoneinfo {
+       int     z_type;                 /* type of zone */
+       char    *z_origin;              /* root domain name of zone */
+       time_t  z_time;                 /* time left before refresh */
+       u_long  z_refresh;              /* refresh interval */
+       u_long  z_retry;                /* refresh retry interval */
+       u_long  z_expire;               /* expiriation time for cached info */
+       u_long  z_minimum;              /* minimum TTL value */
+       u_long  z_serial;               /* changes if zone modified */
+       char    *z_source;              /* source location of data */
+       int     z_addrcnt;              /* address count */
+       struct  in_addr z_addr[MAXNS];  /* list of master servers for zone */
+};
+
+       /* zone types (z_type) */
+#define Z_PRIMARY      1
+#define Z_SECONDARY    2
+#define Z_CACHE                3
+#define Z_DOMAIN       4
+
+       /* Flags to ns_req() */
+#define        ISTCP           01
+#define ISLOCAL                02
+
+/*
+ * Structure for recording info on forwarded queries.
+ */
+struct qinfo {
+       u_short q_id;                   /* id of query */
+       u_short q_nsid;                 /* id of forwarded query */
+       struct  sockaddr_in q_from;     /* requestor's address */
+       char    *q_msg;                 /* the message */
+       int     q_msglen;               /* len of message */
+       int     q_naddr;                /* number of addr's in q_addr */
+       int     q_curaddr;              /* last addr sent to */
+       time_t  q_time;                 /* time to retry */
+       struct  qinfo *q_next;          /* rexmit list (sorted by time) */
+       struct  qinfo *q_link;          /* storage list (random order) */
+       struct  sockaddr_in q_addr[MAXNS];      /* addresses of NS's */
+       int     q_nretry[MAXNS];        /* # of times addr retried */
+       int     q_cname;                /* # of cnames found */
+       char    *q_cmsg;                /* the cname message */
+       int     q_cmsglen;              /* len of cname message */
+       struct  qstream *q_stream;      /* TCP stream, null if UDP */
+};
+
+#define QINFO_NULL     ((struct qinfo *)0)
+extern struct qinfo *qfindid();
+extern struct qinfo *qnew();
+extern struct qinfo *retryqp;          /* next query to retry */
+
+struct qstream {
+       int     s_rfd;                  /* stream file descriptor */
+       int     s_size;                 /* expected amount of data to recive */
+       int     s_bufsize;              /* amount of data recived in s_buf */
+       char    *s_buf;                 /* buffer of recived data */
+       char    *s_bufp;                /* pointer into s_buf of recived data */
+       struct  qstream *s_next;        /* next stream */
+       struct  sockaddr_in s_from;     /* address query came from */
+       u_long  s_time;                 /* time stamp of last transaction */
+       int     s_refcnt;               /* number of outstanding queries */
+       u_short s_tempsize;             /* temporary for size from net */
+};
+
+#define QSTREAM_NULL   ((struct qstream *)0)
+extern struct qstream *streamq;                /* stream queue */
+
+#ifdef DEBUG
+extern int debug;                      /* debug flag */
+extern FILE *ddt;                      /* debug file discriptor */
+#endif
+extern int ds;                         /* datagram socket */
+extern struct timeval tt;              /* place to store time */
+
+extern struct itimerval ival;          /* maintenance interval */
+extern struct zoneinfo zones[MAXZONES];        /* zone information */
+extern int nzones;                     /* number of zones in use */
+
+#ifdef vax
+extern u_short htons(), ntohs();
+extern u_long htonl(), ntohl();
+#endif