diff options
author | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2014-10-20 14:55:52 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@redhat.com> | 2014-10-20 14:55:52 +0200 |
commit | 1b56251d8bcb34fd18e34bc0e44a5e83f750d1d8 (patch) | |
tree | 48a79513c87b7551d51700a9517f7523c4fae1f3 /tests | |
parent | 92d1b739959c9d0491d68c23f19590ba827b1c8f (diff) | |
download | gnutls-1b56251d8bcb34fd18e34bc0e44a5e83f750d1d8.tar.gz |
tests: dtls-stress: only replay when send succeeds
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; |