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