125 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*
 | |
|  * Copyright (c) 1983, 1989 Regents of the University of California.
 | |
|  * All rights reserved.
 | |
|  *
 | |
|  * Redistribution and use in source and binary forms are permitted
 | |
|  * provided that: (1) source distributions retain this entire copyright
 | |
|  * notice and comment, and (2) distributions including binaries display
 | |
|  * the following acknowledgement:  ``This product includes software
 | |
|  * developed by the University of California, Berkeley and its contributors''
 | |
|  * in the documentation or other materials provided with the distribution
 | |
|  * and in all advertising materials mentioning features or use of this
 | |
|  * software. Neither the name of the University nor the names of its
 | |
|  * contributors may be used to endorse or promote products derived
 | |
|  * from this software without specific prior written permission.
 | |
|  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 | |
|  * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 | |
|  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 | |
|  *
 | |
|  *	@(#)nameser.h	5.24 (Berkeley) 6/1/90
 | |
|  */
 | |
| 
 | |
| /*
 | |
| server/ip/gen/nameser.h
 | |
| 
 | |
| Created Sept 18, 1991 by Philip Homburg
 | |
| */
 | |
| 
 | |
| #ifndef __SERVER__IP__GEN__NAEMSER_H__
 | |
| #define __SERVER__IP__GEN__NAEMSER_H__
 | |
| 
 | |
| typedef struct dns_hdr
 | |
| {
 | |
| 	u16_t dh_id;
 | |
| 	u8_t dh_flag1;
 | |
| 	u8_t dh_flag2;
 | |
| 	u16_t dh_qdcount;
 | |
| 	u16_t dh_ancount;
 | |
| 	u16_t dh_nscount;
 | |
| 	u16_t dh_arcount;
 | |
| } dns_hdr_t;
 | |
| 
 | |
| #define DHF_QR		0x80
 | |
| #define DHF_OPCODE	0x78
 | |
| #define DHF_AA		0x04
 | |
| #define DHF_TC		0x02
 | |
| #define DHF_RD		0x01
 | |
| 
 | |
| #define DHF_RA		0x80
 | |
| #define DHF_PR		0x40
 | |
| #define DHF_UNUSED	0x30
 | |
| #define DHF_RCODE	0x0F
 | |
| 
 | |
| 
 | |
| /*
 | |
| Define constants based on rfc883
 | |
| */
 | |
| #define PACKETSZ	512		/* maximum packet size */
 | |
| #define MAXDNAME	256		/* maximum domain name */
 | |
| #define MAXCDNAME	255		/* maximum compressed domain name */
 | |
| #define MAXLABEL	63		/* maximum length of domain label */
 | |
| 	/* Number of bytes of fixed size data in query structure */
 | |
| #define QFIXEDSZ	4
 | |
| 	/* number of bytes of fixed size data in resource record */
 | |
| #define RRFIXEDSZ	10
 | |
| #define INDIR_MASK	0xc0
 | |
| 			/* Defines for handling compressed domain names */
 | |
| 
 | |
| /*
 | |
| Opcodes for DNS
 | |
| */
 | |
| 
 | |
| #define QUERY		0x0			/* standard query */
 | |
| #define IQUERY		0x1			/* inverse query */
 | |
| 
 | |
| /*
 | |
| Error codes
 | |
| */
 | |
| #define NOERROR		0			/* no error */
 | |
| #define FORMERR		1			/* format error */
 | |
| #define SERVFAIL	2			/* server failure */
 | |
| #define NXDOMAIN	3			/* non existent domain */
 | |
| #define NOTIMP		4			/* not implemented */
 | |
| #define REFUSED		5			/* query refused */
 | |
| 	/* non standard */
 | |
| #define NOCHANGE	0xf			/* update failed to change db */
 | |
| 
 | |
| /* Valid types */
 | |
| 
 | |
| #define T_A		1		/* host address */
 | |
| #define T_NS		2		/* authoritative server */
 | |
| #define T_MD		3		/* mail destination */
 | |
| #define T_MF		4		/* mail forwarder */
 | |
| #define T_CNAME		5		/* connonical name */
 | |
| #define T_SOA		6		/* start of authority zone */
 | |
| #define T_MB		7		/* mailbox domain name */
 | |
| #define T_MG		8		/* mail group member */
 | |
| #define T_MR		9		/* mail rename name */
 | |
| #define T_NULL		10		/* null resource record */
 | |
| #define T_WKS		11		/* well known service */
 | |
| #define T_PTR		12		/* domain name pointer */
 | |
| #define T_HINFO		13		/* host information */
 | |
| #define T_MINFO		14		/* mailbox information */
 | |
| #define T_MX		15		/* mail routing information */
 | |
| #define T_TXT		16		/* text strings */
 | |
| 	/* non standard */
 | |
| #define T_UINFO		100		/* user (finger) information */
 | |
| #define T_UID		101		/* user ID */
 | |
| #define T_GID		102		/* group ID */
 | |
| #define T_UNSPEC	103		/* Unspecified format (binary data) */
 | |
| 	/* Query type values which do not appear in resource records */
 | |
| #define T_AXFR		252		/* transfer zone of authority */
 | |
| #define T_MAILB		253		/* transfer mailbox records */
 | |
| #define T_MAILA		254		/* transfer mail agent records */
 | |
| #define T_ANY		255		/* wildcard match */
 | |
| 
 | |
| /* Valid classes */
 | |
| 
 | |
| #define C_IN		1			/* the internet */
 | |
| #define C_CHAOS		3			/* for chaos net (MIT) */
 | |
| #define C_HS		4		/* for Hesiod name server at MIT */
 | |
| 
 | |
| #define C_ANY		255			/* wildcard */
 | |
| 
 | |
| #endif /* __SERVER__IP__GEN__NAEMSER_H__ */
 | 
