X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fsptps_speed.c;h=bde3d697ac9e9fc397d0cab6738394a3fcfb366f;hp=4cb1221b771cd8836c04b5b3e03282cabe4fc317;hb=0c7e0210d900185d4c1a9ffd969dc2a26d9523a9;hpb=d8d1ab4ee1e92ec84fe9ea86eec2396275483a92 diff --git a/src/sptps_speed.c b/src/sptps_speed.c index 4cb1221b..bde3d697 100644 --- a/src/sptps_speed.c +++ b/src/sptps_speed.c @@ -47,11 +47,16 @@ static bool receive_record(void *handle, uint8_t type, const void *data, uint16_ } static void receive_data(sptps_t *sptps) { - char buf[4096]; + char buf[4096], *bufp = buf; int fd = *(int *)sptps->handle; size_t len = recv(fd, buf, sizeof buf, 0); - if(!sptps_receive_data(sptps, buf, len)) - abort(); + while(len) { + size_t done = sptps_receive_data(sptps, bufp, len); + if(!done) + abort(); + bufp += done; + len -= done; + } } struct timespec start; @@ -104,7 +109,7 @@ int main(int argc, char *argv[]) { for(clock_start(); clock_countto(duration);) if(!ecdsa_sign(key1, buf1, 256, buf2)) return 1; - fprintf(stderr, "%22.2lf op/s\n", rate); + fprintf(stderr, "%20.2lf op/s\n", rate); fprintf(stderr, "Ed25519 verify for %lg seconds: ", duration); for(clock_start(); clock_countto(duration);) @@ -112,7 +117,7 @@ int main(int argc, char *argv[]) { fprintf(stderr, "Signature verification failed\n"); return 1; } - fprintf(stderr, "%20.2lf op/s\n", rate); + fprintf(stderr, "%18.2lf op/s\n", rate); ecdh1 = ecdh_generate_public(buf1); fprintf(stderr, "ECDH for %lg seconds: ", duration);