X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=bin%2Faecho%2Faecho.c;h=274421b53b614e9aba9bad99825cd2a9c9706799;hb=cb8de5b604041071f3454dd8df97295544caba59;hp=e12094a9b5982120b1bf7a3a618d0fd14f6ca05a;hpb=cb22616b6b035325d3f25eb910787da358e06b29;p=netatalk.git diff --git a/bin/aecho/aecho.c b/bin/aecho/aecho.c index e12094a9..274421b5 100644 --- a/bin/aecho/aecho.c +++ b/bin/aecho/aecho.c @@ -1,4 +1,6 @@ /* + * $Id: aecho.c,v 1.9 2009-10-14 01:38:28 didg Exp $ + * * Copyright (c) 1990,1991 Regents of The University of Michigan. * All Rights Reserved. * @@ -27,7 +29,7 @@ #ifdef HAVE_CONFIG_H #include "config.h" -#endif +#endif /* HAVE_CONFIG_H */ #include #include @@ -39,7 +41,9 @@ #include #include #include +#ifdef HAVE_NETDB_H #include +#endif /* HAVE_NETDB_H */ #include #include @@ -53,23 +57,24 @@ /* FIXME/SOCKLEN_T: socklen_t is a unix98 feature */ #ifndef SOCKLEN_T #define SOCKLEN_T unsigned int -#endif +#endif /* ! SOCKLEN_T */ -struct sockaddr_at target; -int s, nsent = 0, nrecv = 0; -time_t totalms = 0, minms = -1, maxms = -1; -static unsigned int pings = 0; +static struct sockaddr_at target; +static int sock; +static unsigned int nsent = 0, nrecv = 0; +static time_t totalms = 0, minms = -1, maxms = -1; +static unsigned int pings = 0; -void usage(char *); +static void usage(char *); -void done() +static void done(int sig _U_) { - if ( nsent > 0 ) { + if ( nsent) { printf( "\n----%d.%d AEP Statistics----\n", ntohs( target.sat_addr.s_net ), target.sat_addr.s_node ); printf( "%d packets sent, %d packets received, %d%% packet loss\n", nsent, nrecv, (( nsent - nrecv ) * 100 ) / nsent ); - if ( nrecv > 0 ) { + if ( nrecv ) { printf( "round-trip (ms) min/avg/max = %ld/%ld/%ld\n", minms, totalms / nrecv, maxms ); } @@ -77,7 +82,7 @@ void done() exit( 0 ); } -void aep_send() +static void aep_send(int sig _U_) { struct timeval tv; char *p, buf[ 1024 ]; @@ -86,7 +91,7 @@ void aep_send() p = buf; *p++ = DDPTYPE_AEP; *p++ = AEPOP_REQUEST; - bcopy( &seq, p, sizeof( unsigned int )); + memcpy( p, &seq, sizeof( unsigned int )); p += sizeof( unsigned int ); seq++; @@ -94,21 +99,19 @@ void aep_send() perror( "gettimeofday" ); exit( 1 ); } - bcopy( &tv, p, sizeof( struct timeval )); + memcpy( p, &tv, sizeof( struct timeval )); p += sizeof( struct timeval ); - if ( netddp_sendto( s, buf, p - buf, 0, (struct sockaddr *) &target, + if ( netddp_sendto( sock, buf, p - buf, 0, (struct sockaddr *) &target, sizeof( struct sockaddr_at )) < 0 ) { perror( "sendto" ); exit( 1 ); } nsent++; - if (pings && nsent > pings) done(); + if (pings && nsent > pings) done(0); } -int main( ac, av ) - int ac; - char **av; +int main(int ac, char **av) { struct servent *se; struct sigaction sv; @@ -135,6 +138,8 @@ int main( ac, av ) fprintf(stderr, "Bad address.\n"); exit(1); } + break; + case 'c' : pings = atoi( optarg ); break; @@ -161,7 +166,7 @@ int main( ac, av ) memset( &target, 0, sizeof( struct sockaddr_at )); #ifdef BSD4_4 target.sat_len = sizeof( struct sockaddr_at ); -#endif BSD4_4 +#endif /* BSD4_4 */ target.sat_family = AF_APPLETALK; if ( !atalk_aton( av[ optind ], &target.sat_addr )) { if ( nbp_name( av[ optind ], &obj, &type, &zone ) || !obj ) { @@ -176,7 +181,7 @@ int main( ac, av ) } target.sat_port = port; - if ((s = netddp_open(saddr.sat_addr.s_net || saddr.sat_addr.s_node ? + if ((sock = netddp_open(saddr.sat_addr.s_net || saddr.sat_addr.s_node ? &saddr : NULL, NULL)) < 0) { perror("ddp_open"); exit(1); @@ -212,7 +217,7 @@ int main( ac, av ) for (;;) { satlen = sizeof( struct sockaddr_at ); - if (( cc = netddp_recvfrom( s, buf, sizeof( buf ), 0, + if (( cc = netddp_recvfrom( sock, buf, sizeof( buf ), 0, (struct sockaddr *) &sat, &satlen )) < 0 ) { if ( errno == EINTR ) { @@ -232,9 +237,9 @@ int main( ac, av ) perror( "gettimeofday" ); exit( 1 ); } - bcopy( p, &seq, sizeof( unsigned int )); + memcpy( &seq, p, sizeof( unsigned int )); p += sizeof( unsigned int ); - bcopy( p, &atv, sizeof( struct timeval )); + memcpy( &atv, p, sizeof( struct timeval )); nrecv++; ms = ( tv.tv_sec - atv.tv_sec ) * 1000 + ( tv.tv_usec - atv.tv_usec ) / 1000; @@ -248,11 +253,11 @@ int main( ac, av ) printf( "%d bytes from %u.%u: aep_seq=%d. time=%ld. ms\n", cc, ntohs( sat.sat_addr.s_net ), sat.sat_addr.s_node, seq, ms ); - if (pings && seq + 1 >= pings) done(); + if (pings && seq + 1 >= pings) done(0); } } -void usage( char * av0 ) +static void usage( char * av0 ) { fprintf( stderr, "usage:\t%s [-A source address ] [-c count] ( addr | nbpname )\n", av0 ); exit( 1 );