X-Git-Url: https://www.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fsptps_speed.c;h=4d112dd7088635fe13ce75fc73a14073d20de253;hb=a797b4a19235be740c51bcb3bb6ec5de01915f46;hp=4cb1221b771cd8836c04b5b3e03282cabe4fc317;hpb=d8d1ab4ee1e92ec84fe9ea86eec2396275483a92;p=tinc diff --git a/src/sptps_speed.c b/src/sptps_speed.c index 4cb1221b..4d112dd7 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;