123666Sgusella /* 223666Sgusella * Copyright (c) 1983 Regents of the University of California. 323666Sgusella * All rights reserved. The Berkeley software License Agreement 423666Sgusella * specifies the terms and conditions for redistribution. 523666Sgusella */ 623666Sgusella 7*28830Skarels /* @(#)globals.h 2.4 (Berkeley) 05/27/86 */ 823666Sgusella 924920Sbloom #include <sys/param.h> 1023666Sgusella #include <stdio.h> 1123666Sgusella #include <sys/time.h> 1223666Sgusella #include <errno.h> 1323666Sgusella #include <syslog.h> 1423666Sgusella #include <sys/socket.h> 1523666Sgusella #include <netinet/in.h> 1623666Sgusella #include <netdb.h> 1723666Sgusella #include <arpa/inet.h> 1823666Sgusella 1923666Sgusella extern int errno; 2025579Sbloom extern int sock; 2123666Sgusella 22*28830Skarels #define SAMPLEINTVL 240 /* synch() freq for master, sec */ 23*28830Skarels #define MAXADJ 20 /* max correction (sec) for adjtime */ 24*28830Skarels /* 25*28830Skarels * Parameters for network time measurement 26*28830Skarels * of each host using ICMP timestamp requests. 27*28830Skarels */ 28*28830Skarels #define RANGE 20 /* best expected round-trip time, ms */ 29*28830Skarels #define MSGS 5 /* # of timestamp replies to average */ 30*28830Skarels #define TRIALS 10 /* max # of timestamp echos sent */ 31*28830Skarels 3223666Sgusella #define MINTOUT 360 3323666Sgusella #define MAXTOUT 900 3423666Sgusella 3523666Sgusella #define GOOD 1 3623666Sgusella #define UNREACHABLE 2 3723666Sgusella #define NONSTDTIME 3 3823666Sgusella #define HOSTDOWN 0x7fffffff 3924920Sbloom 4024920Sbloom #define OFF 0 4124920Sbloom #define ON 1 4224920Sbloom 43*28830Skarels /* 44*28830Skarels * Global and per-network states. 45*28830Skarels */ 46*28830Skarels #define NOMASTER 0 /* no master on any network */ 47*28830Skarels #define SLAVE 1 48*28830Skarels #define MASTER 2 49*28830Skarels #define IGNORE 4 50*28830Skarels #define ALL (SLAVE|MASTER|IGNORE) 5125579Sbloom #define SUBMASTER (SLAVE|MASTER) 5224920Sbloom 53*28830Skarels #define NHOSTS 100 /* max number of hosts controlled by timed */ 5424920Sbloom 5524920Sbloom struct host { 5624920Sbloom char *name; 5725579Sbloom struct sockaddr_in addr; 5824920Sbloom long delta; 5924920Sbloom u_short seq; 6024920Sbloom }; 6124920Sbloom 6225579Sbloom struct netinfo { 6325579Sbloom struct netinfo *next; 6425579Sbloom u_long net; 6525579Sbloom u_long mask; 6625579Sbloom struct in_addr my_addr; 6725579Sbloom struct sockaddr_in dest_addr; /* broadcast addr or point-point */ 6825579Sbloom long status; 6925579Sbloom }; 7025579Sbloom 7125579Sbloom extern struct netinfo *nettab; 7225579Sbloom extern int status; 7325579Sbloom extern int trace; 7425579Sbloom extern int sock; 7525579Sbloom extern struct sockaddr_in from; 7627042Sbloom extern struct netinfo *fromnet, *slavenet; 7725579Sbloom extern FILE *fd; 7825579Sbloom extern char hostname[]; 7925579Sbloom extern char tracefile[]; 8025579Sbloom extern struct host hp[]; 8125579Sbloom extern int backoff; 8225579Sbloom extern long delay1, delay2; 8325579Sbloom extern int slvcount; 8427042Sbloom extern int nslavenets; /* Number of nets were I could be a slave */ 8527042Sbloom extern int nmasternets; /* Number of nets were I could be a master */ 8627042Sbloom extern int nignorednets; /* Number of ignored nets */ 8727042Sbloom extern int nnets; /* Number of nets I am connected to */ 8825579Sbloom 8925579Sbloom char *strcpy(), *malloc(); 90