summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2014-10-20 14:55:52 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2014-10-20 14:55:52 +0200
commit1b56251d8bcb34fd18e34bc0e44a5e83f750d1d8 (patch)
tree48a79513c87b7551d51700a9517f7523c4fae1f3 /tests
parent92d1b739959c9d0491d68c23f19590ba827b1c8f (diff)
downloadgnutls-1b56251d8bcb34fd18e34bc0e44a5e83f750d1d8.tar.gz
tests: dtls-stress: only replay when send succeeds
Diffstat (limited to 'tests')
-rw-r--r--tests/dtls/dtls-stress.c6
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;