!_TAG_FILE_FORMAT	2	/extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED	1	/0=unsorted, 1=sorted/
!_TAG_PROGRAM_AUTHOR	Darren Hiebert	/darren@hiebert.com/
!_TAG_PROGRAM_NAME	Exuberant Ctags	//
!_TAG_PROGRAM_URL	http://darren.hiebert.com/ctags/	/official site/
!_TAG_PROGRAM_VERSION	3.2	/with C, C++, Eiffel, Fortran, and Java  support/
ARPADOMAIN	master.c	44;"	d	file:
CACHE_HIGHWATER	cache.c	69;"	d	file:
CACHE_LOWWATER	cache.c	70;"	d	file:
CACHE_MAXTIME	cache.c	53;"	d	file:
CACHE_MINCYCLE	cache.c	61;"	d	file:
CACHE_NEGTIME	cache.c	51;"	d	file:
CACHE_TIME	cache.c	52;"	d	file:
CACHE_TIMEUNIT	cache.c	42;"	d	file:
DEFAULT_TTL	master.c	52;"	d	file:
DNS_AUTHORITY	master.c	77;"	d	file:
DNS_CLASS_INET	dns.h	30;"	d
DNS_DNS	master.c	76;"	d	file:
DNS_NAMEIP	master.c	75;"	d	file:
DNS_TYPE_A	master.c	46;"	d	file:
DNS_TYPE_MX	master.c	49;"	d	file:
DNS_TYPE_NS	master.c	47;"	d	file:
DNS_TYPE_PTR	master.c	48;"	d	file:
MASTER_CONFIG	master.c	40;"	d	file:
MAX_SERV	common.h	30;"	d
OPT_DEBUG	common.c	35;"	d	file:
OPT_DEBUG	common.c	37;"	d	file:
PACKET_ASSEMBLYSIZE	master.c	41;"	d	file:
PACKET_DATABEGIN	dns.h	35;"	d
_DNRD_ARGS_H_	args.h	22;"	d
_DNRD_CACHE_H_	cache.h	24;"	d
_DNRD_COMMON_H_	common.h	24;"	d
_DNRD_DNS_H_	dns.h	25;"	d
_DNRD_MASTER_H_	master.h	25;"	d
_DNRD_RELAY_H_	relay.h	22;"	d
_DNRD_SIG_H_	sig.h	22;"	d
_DNRD_TCP_H_	tcp.h	22;"	d
_DNRD_UDP_H_	udp.h	22;"	d
_DNSR_QUERY_H_	query.h	26;"	d
_LIB_INCLUDED	lib.h	24;"	d
_cache	cache.c	/^typedef struct _cache {$/;"	s	file:
_dnsrec	master.c	/^typedef struct _dnsrec {$/;"	s	file:
_header	dns.h	/^typedef struct _header {$/;"	s
_master_init	master.c	/^static int _master_init(void)$/;"	f	file:
_nameip	master.c	/^typedef struct _nameip {$/;"	s	file:
_packetflags	dns.h	/^typedef union _packetflags {$/;"	u
_rr	dns.h	/^typedef struct _rr {$/;"	s
_string	master.c	/^typedef struct _string {$/;"	s	file:
add_authority	master.c	/^static dnsrec_t *add_authority(char *domain)$/;"	f	file:
add_dns	master.c	/^static dnsrec_t *add_dns(char *domain, char *dns)$/;"	f	file:
add_nameip	master.c	/^static dnsrec_t *add_nameip(char *name, char *ipnum)$/;"	f	file:
add_record	master.c	/^static dnsrec_t *add_record(dnsrec_t *rec)$/;"	f	file:
addr	common.h	/^    struct sockaddr_in     addr;      \/* IP address of server *\/$/;"	m	struct:dnssrv_t
alarm_handler	tcp.c	/^static void alarm_handler(int dummy)$/;"	f	file:
alloc_dnsrec	master.c	/^static dnsrec_t *alloc_dnsrec(char *name)$/;"	f	file:
alloc_packet	dns.c	/^static dnsheader_t *alloc_packet(void *packet, int len)$/;"	f	file:
allocate	lib.c	/^void *allocate(size_t size)$/;"	f
ancount	dns.h	/^    short int	ancount;$/;"	m	struct:_header
append_cx	cache.c	/^static cache_t *append_cx(cache_t *cx)$/;"	f	file:
arcount	dns.h	/^    short int	arcount;	\/* Till here it would fit perfectly to a real$/;"	m	struct:_header
arpa	master.c	/^    string_t	arpa;$/;"	m	struct:_nameip
authorative	dns.h	/^	unsigned short int authorative:1;$/;"	m	struct:_packetflags::<anonymous>
authority_lookup	master.c	/^static dnsrec_t *authority_lookup(char *domain)$/;"	f	file:
auto_authority	master.c	/^static int auto_authority	= 1;$/;"	v	file:
b	dns.h	/^    } b;$/;"	m	union:_packetflags
begin_assembly	master.c	/^static dnsheader_t *begin_assembly(rr_t *query)$/;"	f	file:
cache_dnspacket	cache.c	/^int cache_dnspacket(void *packet, int len)$/;"	f
cache_expire	cache.c	/^int cache_expire(void)$/;"	f
cache_highwater	cache.c	/^long	cache_highwater		= CACHE_HIGHWATER;$/;"	v
cache_hits	cache.c	/^static int cache_hits		= 0;$/;"	v	file:
cache_init	cache.c	/^int cache_init(void)$/;"	f
cache_lookup	cache.c	/^int cache_lookup(void *packet, int len)$/;"	f
cache_lowwater	cache.c	/^long	cache_lowwater		= CACHE_LOWWATER;$/;"	v
cache_misses	cache.c	/^static int cache_misses		= 0;$/;"	v	file:
cache_onoff	cache.c	/^int	cache_onoff		= 1;$/;"	v
cache_param	cache.c	/^char	cache_param[200]	= "";$/;"	v
cache_t	cache.c	/^} cache_t;$/;"	t	file:
cachelist	cache.c	/^static cache_t *cachelist	= NULL;$/;"	v	file:
class	cache.c	/^    int		  type, class;	\/* Query type and class. *\/$/;"	m	struct:_cache
cleanexit	common.c	/^void cleanexit(int status)$/;"	f
client	query.c	/^    struct sockaddr_in client;$/;"	m	struct:dnsq_t
client	tcp.c	/^    struct sockaddr_in client;$/;"	m	struct:tcp_handle_info
client_qid	query.c	/^    unsigned short     client_qid; \/* network byte-ordered *\/$/;"	m	struct:dnsq_t
cmp_cachemru	cache.c	/^static int cmp_cachemru(const void *x, const void * y)$/;"	f	file:
code	cache.c	/^    unsigned int  code;$/;"	m	struct:_cache
code	master.c	/^    unsigned int code;$/;"	m	struct:_string
compile_dnsrecords	master.c	/^static int compile_dnsrecords(dnsheader_t *x, char *object)$/;"	f	file:
compile_int	master.c	/^static unsigned char *compile_int(dnsheader_t *x, int number)$/;"	f	file:
compile_long	master.c	/^static unsigned char *compile_long(dnsheader_t *x, long number)$/;"	f	file:
compile_name	master.c	/^static int compile_name(dnsheader_t *x, char *name)$/;"	f	file:
compile_namepointer	master.c	/^static int compile_namepointer(dnsheader_t *x, int offset)$/;"	f	file:
compile_objectname	master.c	/^static unsigned char *compile_objectname(dnsheader_t *x)$/;"	f	file:
config	master.c	/^static char config[200]		= MASTER_CONFIG;$/;"	v	file:
connect	tcp.c	/^    int	               connect;$/;"	m	struct:tcp_handle_info
copy_string	lib.c	/^char *copy_string(char *y, char *x, int len)$/;"	f
create_cx	cache.c	/^static cache_t *create_cx(dnsheader_t *x, rr_t *query)$/;"	f	file:
create_nameip	master.c	/^static int create_nameip(nameip_t *nameip, char *ip)$/;"	f	file:
created	cache.c	/^    unsigned long created;$/;"	m	struct:_cache
daemongid	common.c	/^gid_t               daemongid = 0;$/;"	v
daemonuid	common.c	/^uid_t               daemonuid = 0;$/;"	v
data	dns.h	/^    char	  data[300];$/;"	m	struct:_rr
dbc	master.c	/^static int dbc =		0;$/;"	v	file:
dbmax	master.c	/^static int dbmax =		0;$/;"	v	file:
dbv	master.c	/^static dnsrec_t	**dbv =		NULL;$/;"	v	file:
decode_header	dns.c	/^static dnsheader_t *decode_header(void *packet, int len)$/;"	f	file:
dnrd_sem	common.c	/^sem_t               dnrd_sem;  \/* Used for all thread synchronization *\/$/;"	v
dns	master.c	/^	string_t	dns;$/;"	m	union:_dnsrec::<anonymous>
dns_lookup	master.c	/^static dnsrec_t *dns_lookup(char *name, int *last)$/;"	f	file:
dns_srv	common.c	/^struct dnssrv_t     dns_srv[MAX_SERV];$/;"	v
dnsheader_t	dns.h	/^} dnsheader_t;$/;"	t
dnsq_t	query.c	/^struct dnsq_t {$/;"	s	file:
dnsquery	query.c	/^typedef struct dnsq_t dnsquery;$/;"	t	file:
dnsquery_add	query.c	/^int dnsquery_add(const struct sockaddr_in* client, char* msg, unsigned len)$/;"	f
dnsquery_dump	query.c	/^void dnsquery_dump()$/;"	f
dnsquery_find	query.c	/^int dnsquery_find(char* reply, struct sockaddr_in* client)$/;"	f
dnsquery_timeout	query.c	/^int dnsquery_timeout(time_t age)$/;"	f
dnsrec_t	master.c	/^} dnsrec_t;$/;"	t	file:
dnsrecv	udp.c	/^static int dnsrecv(int k, void *msg, int len)$/;"	f	file:
dnssend	udp.c	/^static int dnssend(int k, void *msg, int len)$/;"	f	file:
dnssrv_t	common.h	/^struct dnssrv_t {$/;"	s
domain	common.h	/^    char*                  domain;    \/* optional domain to match.  Set to$/;"	m	struct:dnssrv_t
dump_dnspacket	dns.c	/^int dump_dnspacket(char *type, unsigned char *packet, int len)$/;"	f
end_assembly	master.c	/^static int end_assembly(dnsheader_t *x)$/;"	f	file:
end_rdata	master.c	/^static int end_rdata(dnsheader_t *x)$/;"	f	file:
expire_oldest	cache.c	/^static int expire_oldest(int itemcount)$/;"	f	file:
expires	cache.c	/^    unsigned long expires;$/;"	m	struct:_cache
flags	dns.h	/^    pflag_t	  flags;$/;"	m	struct:_rr
flags	dns.h	/^    unsigned short	flags;$/;"	m	union:_packetflags
free_cx	cache.c	/^static int free_cx(cache_t *cx)$/;"	f	file:
free_dnsrec	master.c	/^static int free_dnsrec(dnsrec_t *rec)$/;"	f	file:
free_packet	dns.c	/^int free_packet(dnsheader_t *x)$/;"	f
get_dnsquery	dns.c	/^int get_dnsquery(dnsheader_t *x, rr_t *query)$/;"	f
get_hostname	master.c	/^char *get_hostname(char **from, char *domain, char *name, int size)$/;"	f
get_objectname	dns.c	/^static int get_objectname(unsigned char *msg, unsigned char **here,$/;"	f	file:
get_quoted	lib.c	/^char *get_quoted(char **from, int delim, char *to, int max)$/;"	f
get_stringcode	lib.c	/^unsigned int get_stringcode(char *string)$/;"	f
get_word	lib.c	/^char *get_word(char **from, char *to, int maxlen)$/;"	f
give_help	args.c	/^static void give_help()$/;"	f	file:
gotterminal	common.c	/^int                 gotterminal = 1; \/* 1 if attached to a terminal *\/$/;"	v
handle_query	relay.c	/^int handle_query(const struct sockaddr_in *fromaddrp, char *msg, int *len,$/;"	f
handle_tcprequest	tcp.c	/^void handle_tcprequest()$/;"	f
handle_udpreply	udp.c	/^void handle_udpreply(int srvidx)$/;"	f
handle_udprequest	udp.c	/^void handle_udprequest()$/;"	f
head	query.c	/^static dnsquery *     head = 0;$/;"	v	file:
here	dns.h	/^    char	*here;		\/* For packet parsing. *\/$/;"	m	struct:_header
id	dns.h	/^    unsigned short int	id;$/;"	m	struct:_header
ip_open	tcp.c	/^static int ip_open(struct sockaddr_in server, unsigned int port)$/;"	f	file:
ipnum	master.c	/^    unsigned long ipnum;$/;"	m	struct:_nameip
isock	common.c	/^int                 isock = -1;$/;"	v
kill_current	common.c	/^int kill_current()$/;"	f
lastcache	cache.c	/^static cache_t *lastcache	= NULL;$/;"	v	file:
lastused	cache.c	/^    unsigned long lastused;$/;"	m	struct:_cache
len	dns.h	/^    int		  len;$/;"	m	struct:_rr
len	dns.h	/^    int		len;		\/* ... with this size in bytes. *\/$/;"	m	struct:_header
len	tcp.c	/^    unsigned           len;$/;"	m	struct:tcp_handle_info
local_qid	query.c	/^    unsigned short     local_qid;  \/* network byte-ordered *\/$/;"	m	struct:dnsq_t
log_debug	common.c	/^void log_debug(const char *fmt, ...)$/;"	f
log_msg	common.c	/^void log_msg(int type, const char *fmt, ...)$/;"	f
long_options	args.c	/^static struct option long_options[] =$/;"	v	file:
main	main.c	/^int main(int argc, char *argv[])$/;"	f
make_cname	common.c	/^char* make_cname(const char *text)$/;"	f
master_dontknow	master.c	/^int master_dontknow(unsigned char *msg, int len, unsigned char *answer)$/;"	f
master_init	master.c	/^int master_init(void)$/;"	f
master_initialised	master.c	/^static int master_initialised	= 0;$/;"	v	file:
master_lookup	master.c	/^int master_lookup(unsigned char *msg, int len)$/;"	f
master_onoff	master.c	/^static int master_onoff		= 1;$/;"	v	file:
master_param	master.c	/^char master_param[200]		= "";$/;"	v
master_reinit	master.c	/^int master_reinit(void)$/;"	f
master_reload	master.c	/^static int master_reload	= 0;$/;"	v	file:
master_sighup	master.c	/^static void master_sighup(int sig)$/;"	f	file:
mkstring	master.c	/^static char *mkstring(string_t *string, char *name)$/;"	f	file:
name	cache.c	/^    char	 *name;		\/* Objectname *\/$/;"	m	struct:_cache
name	dns.h	/^    char	  name[300];$/;"	m	struct:_rr
name_lookup	master.c	/^static dnsrec_t *name_lookup(char *name)$/;"	f	file:
nameip	master.c	/^	nameip_t	nameip;$/;"	m	union:_dnsrec::<anonymous>
nameip_t	master.c	/^} nameip_t;$/;"	t	file:
next	cache.c	/^    struct _cache *next, *prev;$/;"	m	struct:_cache
next	query.c	/^    struct dnsq_t *    next;$/;"	m	struct:dnsq_t
noctrl	lib.c	/^char *noctrl(char *buffer)$/;"	f
nscount	dns.h	/^    short int	nscount;$/;"	m	struct:_header
object	master.c	/^    string_t	object;$/;"	m	struct:_dnsrec
opcode	dns.h	/^	unsigned short int opcode:4;$/;"	m	struct:_packetflags::<anonymous>
opt_debug	common.c	/^int                 opt_debug = OPT_DEBUG;$/;"	v
opt_serv	common.c	/^int                 opt_serv = 0;$/;"	v
p	cache.c	/^    dnsheader_t	*p;		\/* The DNS packet with decoded header *\/$/;"	m	struct:_cache
packet	dns.h	/^    char	*packet;	\/* The actual data packet ... *\/$/;"	m	struct:_header
parse_args	args.c	/^int parse_args(int argc, char **argv)$/;"	f
parse_packet	dns.c	/^dnsheader_t *parse_packet(unsigned char *packet, int len)$/;"	f
parse_query	dns.c	/^unsigned char *parse_query(rr_t *y, unsigned char *msg, int len)$/;"	f
pflag_t	dns.h	/^} pflag_t;$/;"	t
pid_file	common.c	/^const char*         pid_file = "\/var\/run\/dnrd.pid";$/;"	v
pid_file	common.c	/^const char*         pid_file = "\/var\/tmp\/dnrd.pid";$/;"	v
positive	cache.c	/^    int		  positive;	\/* Positive or error response? *\/$/;"	m	struct:_cache
prev	cache.c	/^    struct _cache *next, *prev;$/;"	m	struct:_cache
progname	common.c	/^const char*         progname = 0;$/;"	v
ptr_lookup	master.c	/^static dnsrec_t *ptr_lookup(char *arpanum)$/;"	f	file:
qdcount	dns.h	/^    short int	qdcount;$/;"	m	struct:_header
qidcount	query.c	/^static unsigned short qidcount = 0;$/;"	v	file:
question	dns.h	/^	unsigned short int question:1;$/;"	m	struct:_packetflags::<anonymous>
raw_dump	dns.c	/^static int raw_dump(dnsheader_t *x)$/;"	f	file:
rcode	dns.h	/^	unsigned short int rcode:4;$/;"	m	struct:_packetflags::<anonymous>
rdata	dns.h	/^    char	*rdata;		\/* For packet assembly. *\/$/;"	m	struct:_header
read_configuration	master.c	/^int read_configuration(char *filename)$/;"	f
read_hosts	master.c	/^int read_hosts(char *filename, char *domain)$/;"	f
read_record	dns.c	/^static unsigned char *read_record(dnsheader_t *x, rr_t *y,$/;"	f	file:
reallocate	lib.c	/^void *reallocate(void *p, size_t size)$/;"	f
recursion_avail	dns.h	/^	unsigned short int recursion_avail:1;$/;"	m	struct:_packetflags::<anonymous>
recv_addr	common.c	/^struct sockaddr_in recv_addr = { AF_INET, 53, { INADDR_ANY } };$/;"	v
recv_addr	common.c	/^struct sockaddr_in recv_addr = { AF_INET, 53, { { {0, 0, 0, 0} } } };$/;"	v
recvtime	query.c	/^    time_t             recvtime;$/;"	m	struct:dnsq_t
remove_cx	cache.c	/^static cache_t *remove_cx(cache_t *cx)$/;"	f	file:
reset_master	master.c	/^static int reset_master(void)$/;"	f	file:
rr_t	dns.h	/^} rr_t;$/;"	t
run	relay.c	/^void run()$/;"	f
send_count	relay.c	/^static int    send_count = 0;$/;"	v	file:
send_time	relay.c	/^static time_t send_time  = 0;$/;"	v	file:
serv_act	common.c	/^int                 serv_act = 0;$/;"	v
serv_cnt	common.c	/^int                 serv_cnt = 0;$/;"	v
server_switch	relay.c	/^static void server_switch() {$/;"	f	file:
short_options	args.c	/^const char short_options[] = "a:c:dhklm:s:u:v";$/;"	v
sig_handler	sig.c	/^void sig_handler(int signo)$/;"	f
skip_ws	lib.c	/^char *skip_ws(char *string)$/;"	f
sock	common.h	/^    int                    sock;      \/* for communication with server *\/$/;"	m	struct:dnssrv_t
sprintf_cname	common.c	/^void sprintf_cname(const char *cname, char *buf, int bufsize)$/;"	f
start_rdata	master.c	/^static int start_rdata(dnsheader_t *x)$/;"	f	file:
string	master.c	/^    char	*string;$/;"	m	struct:_string
string_t	master.c	/^} string_t;$/;"	t	file:
strlwr	lib.c	/^char *strlwr(char *string)$/;"	f
strupr	lib.c	/^char *strupr(char *string)$/;"	f
tail	query.c	/^static dnsquery *     tail = 0;$/;"	v	file:
tcp_handle_info	tcp.c	/^typedef struct tcp_handle_info {$/;"	s	file:
tcp_handle_t	tcp.c	/^} tcp_handle_t;$/;"	t	file:
tcp_handler	tcp.c	/^static void *tcp_handler(void *dummy)$/;"	f	file:
tcpsock	common.c	/^int                 tcpsock = -1;$/;"	v
truncated	dns.h	/^	unsigned short int truncated:1;$/;"	m	struct:_packetflags::<anonymous>
ttl	dns.h	/^    unsigned long ttl;$/;"	m	struct:_rr
type	cache.c	/^    int		  type, class;	\/* Query type and class. *\/$/;"	m	struct:_cache
type	dns.h	/^    unsigned int  type;$/;"	m	struct:_rr
type	master.c	/^    int		type;$/;"	m	struct:_dnsrec
u	dns.h	/^    pflag_t	u;$/;"	m	struct:_header
u	master.c	/^    } u;$/;"	m	struct:_dnsrec
unused	dns.h	/^	unsigned short int unused:3;$/;"	m	struct:_packetflags::<anonymous>
version	common.c	/^const char*         version = "2.9.1";$/;"	v
want_recursion	dns.h	/^	unsigned short int want_recursion:1;$/;"	m	struct:_packetflags::<anonymous>
