diff options
author | Alfredo Pironti <alfredo@pironti.eu> | 2013-01-24 13:46:15 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-02-04 09:28:41 +0100 |
commit | ef58e5c4a7b0c8a33d38e0726ebcda3fc637ee55 (patch) | |
tree | d997885d2305a14881a90ecb512ddb5d98b2c7af | |
parent | 2bd9e844fca0d901ed3b15a0d0b41d4b786be5de (diff) | |
download | gnutls-ef58e5c4a7b0c8a33d38e0726ebcda3fc637ee55.tar.gz |
Make sure we don't fail if writing gets interrupted
-rw-r--r-- | lib/gnutls_range.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/gnutls_range.c b/lib/gnutls_range.c index 422fc996d9..f3d798b80d 100644 --- a/lib/gnutls_range.c +++ b/lib/gnutls_range.c @@ -281,6 +281,15 @@ gnutls_record_send_range (gnutls_session_t session, const void *data, next_fragment_length, cur_range.high, MBUFFER_FLUSH); + + while (ret == GNUTLS_E_AGAIN || ret == GNUTLS_E_INTERRUPTED) + { + ret = _gnutls_send_tlen_int (session, GNUTLS_APPLICATION_DATA, -1, + EPOCH_WRITE_CURRENT, + NULL, 0, 0, + MBUFFER_FLUSH); + } + if (ret < 0) { return ret; /* already gnutls_assert_val'd */ |