--- embedaddon/ttcp/ttcp.c 2013/07/22 00:49:29 1.1.1.1.2.1 +++ embedaddon/ttcp/ttcp.c 2016/10/18 13:26:43 1.1.1.1.2.2 @@ -52,6 +52,9 @@ #include #include #include /* struct timeval */ +#include +#include +#include #if defined(SYSV) #include @@ -130,7 +133,7 @@ double cput, realt; /* user, real time (seconds) */ void err(); void mes(); -int pattern(); +void pattern(); void prep_timer(); double read_timer(); int Nread(); @@ -144,6 +147,7 @@ sigpipe() { } +int main(argc,argv) int argc; char **argv; @@ -246,6 +250,7 @@ char **argv; #endif /* cray */ } sinhim.sin_port = htons(port); + sinme.sin_family = AF_INET; /* Solaris needs this */ sinme.sin_port = 0; /* free choice */ } else { /* rcvr */ @@ -260,29 +265,31 @@ char **argv; if ( (buf = (char *)malloc(buflen+bufalign)) == (char *)NULL) err("malloc"); if (bufalign != 0) - buf +=(bufalign - ((int)buf % bufalign) + bufoffset) % bufalign; + buf += (bufalign + -((unsigned long)buf % bufalign) + + bufoffset) % bufalign; if (trans) { - fprintf(stdout, + fprintf(stderr, "ttcp-t: buflen=%d, nbuf=%d, align=%d/%d, port=%d", buflen, nbuf, bufalign, bufoffset, port); if (sockbufsize) - fprintf(stdout, ", sockbufsize=%d", sockbufsize); - fprintf(stdout, " %s -> %s\n", udp?"udp":"tcp", host); + fprintf(stderr, ", sockbufsize=%d", sockbufsize); + fprintf(stderr, " %s -> %s\n", udp?"udp":"tcp", host); } else { - fprintf(stdout, + fprintf(stderr, "ttcp-r: buflen=%d, nbuf=%d, align=%d/%d, port=%d", buflen, nbuf, bufalign, bufoffset, port); if (sockbufsize) - fprintf(stdout, ", sockbufsize=%d", sockbufsize); - fprintf(stdout, " %s\n", udp?"udp":"tcp"); + fprintf(stderr, ", sockbufsize=%d", sockbufsize); + fprintf(stderr, " %s\n", udp?"udp":"tcp"); } if ((fd = socket(AF_INET, udp?SOCK_DGRAM:SOCK_STREAM, 0)) < 0) err("socket"); mes("socket"); - if (bind(fd, &sinme, sizeof(sinme)) < 0) + if (bind(fd, (struct sockaddr *) &sinme, sizeof(sinme)) < 0) err("bind"); #if defined(SO_SNDBUF) || defined(SO_RCVBUF) @@ -323,7 +330,7 @@ char **argv; mes("nodelay"); } #endif - if(connect(fd, &sinhim, sizeof(sinhim) ) < 0) + if(connect(fd, (struct sockaddr*)&sinhim, sizeof(sinhim) ) < 0) err("connect"); mes("connect"); } else { @@ -455,6 +462,7 @@ char *s; fprintf(stderr,"ttcp%s: %s\n", trans?"-t":"-r", s); } +void pattern( cp, cnt ) register char *cp; register int cnt; @@ -638,49 +646,49 @@ prusage(r0, r1, e, b, outp) break; case 'X': - sprintf(outp,"%d", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t); + sprintf(outp,"%ld", t == 0 ? 0 : (r1->ru_ixrss-r0->ru_ixrss)/t); END(outp); break; case 'D': - sprintf(outp,"%d", t == 0 ? 0 : + sprintf(outp,"%ld", t == 0 ? 0 : (r1->ru_idrss+r1->ru_isrss-(r0->ru_idrss+r0->ru_isrss))/t); END(outp); break; case 'K': - sprintf(outp,"%d", t == 0 ? 0 : + sprintf(outp,"%ld", t == 0 ? 0 : ((r1->ru_ixrss+r1->ru_isrss+r1->ru_idrss) - (r0->ru_ixrss+r0->ru_idrss+r0->ru_isrss))/t); END(outp); break; case 'M': - sprintf(outp,"%d", r1->ru_maxrss/2); + sprintf(outp,"%ld", r1->ru_maxrss/2); END(outp); break; case 'F': - sprintf(outp,"%d", r1->ru_majflt-r0->ru_majflt); + sprintf(outp,"%ld", r1->ru_majflt-r0->ru_majflt); END(outp); break; case 'R': - sprintf(outp,"%d", r1->ru_minflt-r0->ru_minflt); + sprintf(outp,"%ld", r1->ru_minflt-r0->ru_minflt); END(outp); break; case 'I': - sprintf(outp,"%d", r1->ru_inblock-r0->ru_inblock); + sprintf(outp,"%ld", r1->ru_inblock-r0->ru_inblock); END(outp); break; case 'O': - sprintf(outp,"%d", r1->ru_oublock-r0->ru_oublock); + sprintf(outp,"%ld", r1->ru_oublock-r0->ru_oublock); END(outp); break; case 'C': - sprintf(outp,"%d+%d", r1->ru_nvcsw-r0->ru_nvcsw, + sprintf(outp,"%ld+%ld", r1->ru_nvcsw-r0->ru_nvcsw, r1->ru_nivcsw-r0->ru_nivcsw ); END(outp); break; @@ -739,6 +747,7 @@ register char *cp; /* * N R E A D */ +int Nread( fd, buf, count ) int fd; void *buf; @@ -770,6 +779,7 @@ int count; /* * N W R I T E */ +int Nwrite( fd, buf, count ) int fd; void *buf; @@ -778,7 +788,7 @@ int count; register int cnt; if( udp ) { again: - cnt = sendto( fd, buf, count, 0, &sinhim, sizeof(sinhim) ); + cnt = sendto( fd, buf, count, 0, (struct sockaddr *)&sinhim, sizeof(sinhim) ); numCalls++; if( cnt<0 && errno == ENOBUFS ) { delay(18000); @@ -799,7 +809,7 @@ delay(us) tv.tv_sec = 0; tv.tv_usec = us; - (void)select( 1, (char *)0, (char *)0, (char *)0, &tv ); + (void)select( 1, NULL, NULL, NULL, &tv ); } /*