diff options
author | Daiki Ueno <ueno@gnu.org> | 2021-04-29 08:26:46 +0200 |
---|---|---|
committer | Daiki Ueno <ueno@gnu.org> | 2021-05-13 11:19:17 +0200 |
commit | 2d73f89a41d145321e2431c78d7d05956a819db1 (patch) | |
tree | 58976a4f9acb762a3afe488401cc6b3c22cc2736 /lib/record.c | |
parent | 6eb9546c5e7e53924f2db6cb3a446bfec6c006e4 (diff) | |
download | gnutls-2d73f89a41d145321e2431c78d7d05956a819db1.tar.gz |
gnutls_init: redefine GNUTLS_ENABLE_EARLY_DATA flag for client
The flag was only for the server, but it turned out to be useful for
client to explicitly indicate early data, when 0-RTT is handled
out-of-band as in QUIC.
Signed-off-by: Daiki Ueno <ueno@gnu.org>
Diffstat (limited to 'lib/record.c')
-rw-r--r-- | lib/record.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/record.c b/lib/record.c index 860b9897d6..3f16ae6505 100644 --- a/lib/record.c +++ b/lib/record.c @@ -2098,6 +2098,10 @@ ssize_t gnutls_record_send_early_data(gnutls_session_t session, if (session->security_parameters.entity != GNUTLS_CLIENT) return gnutls_assert_val(GNUTLS_E_INVALID_REQUEST); + if (data_size == 0) { + return 0; + } + if (xsum(session->internals. early_data_presend_buffer.length, data_size) > @@ -2111,6 +2115,8 @@ ssize_t gnutls_record_send_early_data(gnutls_session_t session, if (ret < 0) return gnutls_assert_val(ret); + session->internals.flags |= GNUTLS_ENABLE_EARLY_DATA; + return ret; } |