xref: /csrg-svn/usr.sbin/timed/timed/globals.h (revision 33123)
123666Sgusella /*
223666Sgusella  * Copyright (c) 1983 Regents of the University of California.
3*33123Sbostic  * All rights reserved.
4*33123Sbostic  *
5*33123Sbostic  * Redistribution and use in source and binary forms are permitted
6*33123Sbostic  * provided that this notice is preserved and that due credit is given
7*33123Sbostic  * to the University of California at Berkeley. The name of the University
8*33123Sbostic  * may not be used to endorse or promote products derived from this
9*33123Sbostic  * software without specific prior written permission. This software
10*33123Sbostic  * is provided ``as is'' without express or implied warranty.
11*33123Sbostic  *
12*33123Sbostic  *	@(#)globals.h	2.5 (Berkeley) 12/23/87
1323666Sgusella  */
1423666Sgusella 
1524920Sbloom #include <sys/param.h>
1623666Sgusella #include <stdio.h>
1723666Sgusella #include <sys/time.h>
1823666Sgusella #include <errno.h>
1923666Sgusella #include <syslog.h>
2023666Sgusella #include <sys/socket.h>
2123666Sgusella #include <netinet/in.h>
2223666Sgusella #include <netdb.h>
2323666Sgusella #include <arpa/inet.h>
2423666Sgusella 
2523666Sgusella extern int errno;
2625579Sbloom extern int sock;
2723666Sgusella 
2828830Skarels #define SAMPLEINTVL	240		/* synch() freq for master, sec */
2928830Skarels #define	MAXADJ		20		/* max correction (sec) for adjtime */
3028830Skarels /*
3128830Skarels  * Parameters for network time measurement
3228830Skarels  * of each host using ICMP timestamp requests.
3328830Skarels  */
3428830Skarels #define RANGE		20		/* best expected round-trip time, ms */
3528830Skarels #define MSGS 		5		/* # of timestamp replies to average */
3628830Skarels #define TRIALS		10		/* max # of timestamp echos sent */
3728830Skarels 
3823666Sgusella #define MINTOUT		360
3923666Sgusella #define MAXTOUT		900
4023666Sgusella 
4123666Sgusella #define GOOD		1
4223666Sgusella #define UNREACHABLE	2
4323666Sgusella #define NONSTDTIME	3
4423666Sgusella #define HOSTDOWN 	0x7fffffff
4524920Sbloom 
4624920Sbloom #define OFF	0
4724920Sbloom #define ON	1
4824920Sbloom 
4928830Skarels /*
5028830Skarels  * Global and per-network states.
5128830Skarels  */
5228830Skarels #define NOMASTER 	0		/* no master on any network */
5328830Skarels #define SLAVE 		1
5428830Skarels #define MASTER		2
5528830Skarels #define IGNORE		4
5628830Skarels #define ALL		(SLAVE|MASTER|IGNORE)
5725579Sbloom #define SUBMASTER	(SLAVE|MASTER)
5824920Sbloom 
5928830Skarels #define NHOSTS		100	/* max number of hosts controlled by timed */
6024920Sbloom 
6124920Sbloom struct host {
6224920Sbloom 	char *name;
6325579Sbloom 	struct sockaddr_in addr;
6424920Sbloom 	long delta;
6524920Sbloom 	u_short seq;
6624920Sbloom };
6724920Sbloom 
6825579Sbloom struct netinfo {
6925579Sbloom 	struct netinfo *next;
7025579Sbloom 	u_long net;
7125579Sbloom 	u_long mask;
7225579Sbloom 	struct in_addr my_addr;
7325579Sbloom 	struct sockaddr_in dest_addr;	/* broadcast addr or point-point */
7425579Sbloom 	long status;
7525579Sbloom };
7625579Sbloom 
7725579Sbloom extern struct netinfo *nettab;
7825579Sbloom extern int status;
7925579Sbloom extern int trace;
8025579Sbloom extern int sock;
8125579Sbloom extern struct sockaddr_in from;
8227042Sbloom extern struct netinfo *fromnet, *slavenet;
8325579Sbloom extern FILE *fd;
8425579Sbloom extern char hostname[];
8525579Sbloom extern char tracefile[];
8625579Sbloom extern struct host hp[];
8725579Sbloom extern int backoff;
8825579Sbloom extern long delay1, delay2;
8925579Sbloom extern int slvcount;
9027042Sbloom extern int nslavenets;		/* Number of nets were I could be a slave */
9127042Sbloom extern int nmasternets;		/* Number of nets were I could be a master */
9227042Sbloom extern int nignorednets;	/* Number of ignored nets */
9327042Sbloom extern int nnets;		/* Number of nets I am connected to */
9425579Sbloom 
9525579Sbloom char *strcpy(), *malloc();
96