Fix implicit declaration of functions by including required system headers and forward-declaring functions. Modernize function arguments and specify function return types. Fix verbose and debug functions to use a va_list. Change send_pings to accept an int parameter because it is used as a signal handler and that's how signal handlers are defined. --- roverpingd/packet.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/packet.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,9 @@ */ #include +#include +#include +#include #include #include #include @@ -26,7 +29,7 @@ /*------------------------------------------------------------------*/ -malloc_ping_packet() +void malloc_ping_packet(void) { debug("mallocing %d bytes for packet\n", packet_size); if ((ping_packet = (u_char *)malloc((unsigned) packet_size)) == NULL) { @@ -38,7 +41,7 @@ /*------------------------------------------------------------------*/ -set_icmp_identifer() +void set_icmp_identifer(void) { icmp_ident = getpid() & 0xffff; debug("setting icmp identifer to %d\n", icmp_ident); @@ -46,9 +49,7 @@ /*------------------------------------------------------------------*/ -static unsigned int calc_checksum(addr,len) -u_short *addr; -int len; +static unsigned int calc_checksum(u_short *addr, int len) { register int nleft = len; register u_short *w = addr; @@ -70,11 +71,7 @@ /*------------------------------------------------------------------*/ -create_icmp_header(address,header,sock,seq) -char *address; -struct icmp *header; -struct sockaddr *sock; -int seq; +int create_icmp_header(char *address, struct icmp *header, struct sockaddr *sock, int seq) { struct sockaddr_in *to; --- roverpingd/pingd.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/pingd.c 2021-11-23 06:12:49.000000000 -0600 @@ -3,6 +3,9 @@ */ #include +#include +#include +#include #include #include #include @@ -31,9 +34,7 @@ /*------------------------------------------------------------------*/ -main(argc,argv) -int argc; -char *argv[]; +int main(int argc, char *argv[]) { process_args(argc,argv); write_pid_file(); @@ -41,15 +42,13 @@ malloc_ping_packet(); set_icmp_identifer(); read_ping_list(); - send_pings(); + send_pings(0); receive_pings(); } /*------------------------------------------------------------------*/ -process_args(argc,argv) -int argc; -char *argv[]; +void process_args(int argc, char *argv[]) { int flag; extern char *optarg; @@ -98,7 +97,7 @@ /*------------------------------------------------------------------*/ -usage() +void usage(void) { printf("usage: nrg-pingd [args]\n"); printf(" -p num set polling interval to num (default %d secs)\n", polling_interval * NUM_DATA_POINTS); @@ -111,37 +110,40 @@ /*------------------------------------------------------------------*/ -debug(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) -char *a,*b,*c,*d,*e,*f,*g,*h,*i,*j,*k,*l,*m,*n,*o; +void debug(const char* format, ...) { + va_list arglist; if ( debuggin ) { - fprintf(stderr,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o); + va_start(arglist, format); + vfprintf(stderr, format, arglist); + va_end(arglist); fflush(stderr); } } /*------------------------------------------------------------------*/ -verbose(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) -char *a,*b,*c,*d,*e,*f,*g,*h,*i,*j,*k,*l,*m,*n,*o; +void verbose(const char* format, ...) { char time_str[27]; time_t now_t = time(&now_t); int len; + va_list arglist; if ( verbosin && ! debuggin ) { strcpy(time_str,(char *)ctime(&now_t)); len = strlen(time_str); time_str[len - 6] = '\0'; fprintf(stderr,"%s ",time_str); - fprintf(stderr,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o); + va_start(arglist, format); + vfprintf(stderr, format, arglist); + va_end(arglist); fflush(stderr); } } /*------------------------------------------------------------------*/ -debug_ctime(t) -time_t t; +void debug_ctime(time_t t) { char time_str[27]; int len; @@ -156,8 +158,7 @@ /*------------------------------------------------------------------*/ -dump_list_entry(i) -int i; +void dump_list_entry(int i) { fprintf(stderr,"list entry %d...\n",i); fprintf(stderr," n_addr is \"%s\"\n",ping_list[i]->n_addr); @@ -168,7 +169,7 @@ /*------------------------------------------------------------------*/ -write_pid_file() +void write_pid_file(void) { struct stat buf; FILE *fp; --- roverpingd/pingd.h.in.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/pingd.h.in 2021-11-23 05:52:10.000000000 -0600 @@ -48,3 +48,16 @@ int n_next_data_point; }; +void process_args(int argc, char *argv[]); +void usage(void); +void debug(const char* format, ...); +void verbose(const char* format, ...); +void debug_ctime(time_t t); +void write_pid_file(void); +void create_ping_socket(void); +void malloc_ping_packet(void); +void set_icmp_identifer(void); +void read_ping_list(void); +void send_pings(int sig); +void receive_pings(void); +int create_icmp_header(char *address, struct icmp *header, struct sockaddr *sock, int seq); --- roverpingd/read_list.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/read_list.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,7 @@ */ #include +#include #include #include #include @@ -25,7 +26,7 @@ /*------------------------------------------------------------------*/ -read_ping_list() +void read_ping_list(void) { struct stat buf; FILE *fp; --- roverpingd/receive.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/receive.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,8 @@ */ #include +#include +#include #include #include #include @@ -33,11 +35,7 @@ /*------------------------------------------------------------------*/ -int -parse_icmp_seq(packet,packetlen,from) -char *packet; -int packetlen; -struct sockaddr_in *from; +int parse_icmp_seq(char *packet, int packetlen, struct sockaddr_in *from) { struct in_addr temp; struct ip *ip; @@ -99,9 +97,7 @@ /*------------------------------------------------------------------*/ -int -calc_latency(idx) -int idx; +int calc_latency(int idx) { struct timeval now; int e_secs, e_usecs, rtt, ave_rtt; @@ -118,7 +114,7 @@ /*------------------------------------------------------------------*/ -receive_pings() +void receive_pings(void) { struct sockaddr_in from_sock; int from_len, byte_count, idx, l; --- roverpingd/send.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/send.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,7 @@ */ #include +#include #include #include #include @@ -32,9 +33,12 @@ static int nodes_pinged = 0; static time_t ping_list_start_time; +void mark_node_as_down(int i); +void set_alarm_itimer(time_t when_sec, time_t delta_ms); +void write_stats_file(void); /*------------------------------------------------------------------*/ -void send_pings() +void send_pings(int sig) { int i, rc; time_t now; @@ -126,8 +130,7 @@ /*------------------------------------------------------------------*/ -mark_node_as_down(i) -int i; +void mark_node_as_down(int i) { ping_list[i]->n_state = NOT_PINGING; ping_list[i]->n_latency = NOT_RESPONDING; @@ -168,9 +171,7 @@ /*------------------------------------------------------------------*/ -set_alarm_itimer(when_sec,delta_ms) -time_t when_sec; -time_t delta_ms; +void set_alarm_itimer(time_t when_sec, time_t delta_ms) { time_t now; struct itimerval timer_time, old_timer_time; @@ -197,7 +198,7 @@ /*------------------------------------------------------------------*/ #ifdef __DUMP_PACKETS__ -dump_packet() +void dump_packet(void) { register int i; fprintf(stderr,"\n"); --- roverpingd/sock.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/sock.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,7 @@ */ #include +#include #include #include #include @@ -24,7 +25,7 @@ /*------------------------------------------------------------------*/ -create_ping_socket() +void create_ping_socket(void) { struct protoent *proto; --- roverpingd/write_stats.c.orig 2006-01-30 06:12:24.000000000 -0600 +++ roverpingd/write_stats.c 2021-11-23 05:52:10.000000000 -0600 @@ -3,6 +3,8 @@ */ #include +#include +#include #include #ifdef __FreeBSD__ #include @@ -27,9 +29,11 @@ char pingstats_file[MAX_PATH_LENGTH]; +void dataprintf(FILE *fp, int arg); + /*------------------------------------------------------------------*/ -write_stats_file() +void write_stats_file(void) { FILE *fp; time_t now = time(&now); @@ -111,9 +115,7 @@ /*------------------------------------------------------------------*/ -dataprintf(fp, arg) -FILE *fp; -int arg; +void dataprintf(FILE *fp, int arg) { switch (arg) { case NOT_RESPONDING: {