123666Sgusella /* 223666Sgusella * Copyright (c) 1983 Regents of the University of California. 333123Sbostic * All rights reserved. 433123Sbostic * 5*42829Sbostic * %sccs.include.redist.c% 633123Sbostic * 7*42829Sbostic * @(#)globals.h 2.7 (Berkeley) 06/01/90 823666Sgusella */ 923666Sgusella 1024920Sbloom #include <sys/param.h> 1123666Sgusella #include <stdio.h> 1223666Sgusella #include <sys/time.h> 1323666Sgusella #include <errno.h> 1423666Sgusella #include <syslog.h> 1523666Sgusella #include <sys/socket.h> 1623666Sgusella #include <netinet/in.h> 1723666Sgusella #include <netdb.h> 1823666Sgusella #include <arpa/inet.h> 1923666Sgusella 2023666Sgusella extern int errno; 2125579Sbloom extern int sock; 2223666Sgusella 2328830Skarels #define SAMPLEINTVL 240 /* synch() freq for master, sec */ 2428830Skarels #define MAXADJ 20 /* max correction (sec) for adjtime */ 2528830Skarels /* 2628830Skarels * Parameters for network time measurement 2728830Skarels * of each host using ICMP timestamp requests. 2828830Skarels */ 2928830Skarels #define RANGE 20 /* best expected round-trip time, ms */ 3028830Skarels #define MSGS 5 /* # of timestamp replies to average */ 3128830Skarels #define TRIALS 10 /* max # of timestamp echos sent */ 3228830Skarels 3323666Sgusella #define MINTOUT 360 3423666Sgusella #define MAXTOUT 900 3523666Sgusella 3623666Sgusella #define GOOD 1 3723666Sgusella #define UNREACHABLE 2 3823666Sgusella #define NONSTDTIME 3 3923666Sgusella #define HOSTDOWN 0x7fffffff 4024920Sbloom 4124920Sbloom #define OFF 0 4224920Sbloom #define ON 1 4324920Sbloom 4428830Skarels /* 4528830Skarels * Global and per-network states. 4628830Skarels */ 4728830Skarels #define NOMASTER 0 /* no master on any network */ 4828830Skarels #define SLAVE 1 4928830Skarels #define MASTER 2 5028830Skarels #define IGNORE 4 5128830Skarels #define ALL (SLAVE|MASTER|IGNORE) 5225579Sbloom #define SUBMASTER (SLAVE|MASTER) 5324920Sbloom 5428830Skarels #define NHOSTS 100 /* max number of hosts controlled by timed */ 5524920Sbloom 5624920Sbloom struct host { 5724920Sbloom char *name; 5825579Sbloom struct sockaddr_in addr; 5924920Sbloom long delta; 6024920Sbloom u_short seq; 6124920Sbloom }; 6224920Sbloom 6325579Sbloom struct netinfo { 6425579Sbloom struct netinfo *next; 6525579Sbloom u_long net; 6625579Sbloom u_long mask; 6725579Sbloom struct in_addr my_addr; 6825579Sbloom struct sockaddr_in dest_addr; /* broadcast addr or point-point */ 6925579Sbloom long status; 7025579Sbloom }; 7125579Sbloom 7225579Sbloom extern struct netinfo *nettab; 7325579Sbloom extern int status; 7425579Sbloom extern int trace; 7525579Sbloom extern int sock; 7625579Sbloom extern struct sockaddr_in from; 7727042Sbloom extern struct netinfo *fromnet, *slavenet; 7825579Sbloom extern FILE *fd; 7925579Sbloom extern char hostname[]; 8025579Sbloom extern char tracefile[]; 8125579Sbloom extern struct host hp[]; 8225579Sbloom extern int backoff; 8325579Sbloom extern long delay1, delay2; 8425579Sbloom extern int slvcount; 8527042Sbloom extern int nslavenets; /* Number of nets were I could be a slave */ 8627042Sbloom extern int nmasternets; /* Number of nets were I could be a master */ 8727042Sbloom extern int nignorednets; /* Number of ignored nets */ 8827042Sbloom extern int nnets; /* Number of nets I am connected to */ 8925579Sbloom 9025579Sbloom char *strcpy(), *malloc(); 91