diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/dtls/dtls-stress.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/tests/dtls/dtls-stress.c b/tests/dtls/dtls-stress.c index bd73ba6454..40a724312b 100644 --- a/tests/dtls/dtls-stress.c +++ b/tests/dtls/dtls-stress.c @@ -495,22 +495,24 @@ static void filter_clear_state(void) sizeof(state_permute_ClientFinishedFull)); } +/* replay buffer */ static int rbuffer[5*1024]; unsigned rbuffer_size = 0; static void filter_run_next(gnutls_transport_ptr_t fd, const unsigned char *buffer, size_t len) { + int ret; filter_fn fn = filter_chain[filter_current_idx]; filter_current_idx++; if (fn) { fn(fd, buffer, len); } else { - send((int) (intptr_t) fd, buffer, len, 0); + ret = send((int) (intptr_t) fd, buffer, len, 0); } filter_current_idx--; - if (replay != 0) { + if (ret > 0 && replay != 0) { if (rbuffer_size == 0 && len < sizeof(rbuffer)) { memcpy(rbuffer, buffer, len); rbuffer_size = len; |