1/* Copyright (C) 1996 N.M. Maclaren 2 Copyright (C) 1996 The University of Cambridge 3 4This includes all of the 'safe' headers and definitions used across modules. 5No changes should be needed for any system that is even remotely like Unix. */ 6 7 8 9#include <ctype.h> 10#include <errno.h> 11#include <stdio.h> 12#include <stdlib.h> 13#include <string.h> 14#include <time.h> 15 16 17 18#define VERSION "1.6" /* Just the version string */ 19#define MAX_SOCKETS 10 /* Maximum number of addresses */ 20 21#ifndef LOCKNAME 22# define LOCKNAME "/etc/sntp.pid" /* Stores the pid */ 23#endif 24#ifndef SAVENAME 25# define SAVENAME "/etc/sntp.state" /* Stores the recovery state */ 26#endif 27 28 29 30/* Defined in main.c */ 31 32#define op_client 1 /* Behave as a challenge client */ 33#define op_listen 2 /* Behave as a listening client */ 34 35extern const char *argv0; 36 37extern int verbose, operation; 38 39extern const char *lockname; 40 41extern void fatal (int syserr, const char *message, const char *insert); 42 43 44 45/* Defined in unix.c */ 46 47extern void do_nothing (int seconds); 48 49extern int ftty (FILE *file); 50 51extern void set_lock (int lock); 52 53extern void log_message (const char *message); 54 55 56 57/* Defined in internet.c */ 58 59/* extern void find_address (struct in_addr *address, int *port, char *hostname, 60 int timespan); */ 61 62#define PREF_FAM_INET 1 63#define PREF_FAM_INET6 2 64extern void preferred_family(int); 65 66 67/* Defined in socket.c */ 68 69extern void open_socket (int which, char *hostnames, int timespan); 70 71extern void write_socket (int which, void *packet, int length); 72 73extern int read_socket (int which, void *packet, int length, int waiting); 74 75extern int flush_socket (int which); 76 77extern void close_socket (int which); 78 79 80 81/* Defined in timing.c */ 82 83extern double current_time (double offset); 84 85extern time_t convert_time (double value, int *millisecs); 86 87extern void adjust_time (double difference, int immediate, double ignore); 88