Fix receiving SPTPS data in sptps_speed and sptps_test.
[oweals/tinc.git] / src / sptps_test.c
index f83307fe5c68cf98f7ffee45a997c06177b205f6..9452ed1e0242685b36fdce31c3c4326d6a364b4c 100644 (file)
@@ -357,8 +357,19 @@ int main(int argc, char *argv[]) {
                                        fprintf(stderr, "Dropped.\n");
                                continue;
                        }
-                       if(!sptps_receive_data(&s, buf, len) && !datagram)
-                               return 1;
+                       char *bufp = buf;
+                       while(len) {
+                               size_t done = sptps_receive_data(&s, bufp, len);
+                               if(!done) {
+                                       if(!datagram)
+                                               return 1;
+                               } else {
+                                       break;
+                               }
+
+                               bufp += done;
+                               len -= done;
+                       }
                }
        }