summaryrefslogtreecommitdiff
path: root/lib/record.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@redhat.com>2017-09-15 13:54:25 +0200
committerNikos Mavrogiannopoulos <nmav@redhat.com>2018-02-19 15:29:34 +0100
commit3e796a094e68e12bc05d4959dfb6abe46293d47a (patch)
tree408050a7870315e95e849aa7f60f00fbcc2bfc80 /lib/record.c
parente2c71dbca74f0ad4ac20a214536f25b1bc6b059e (diff)
downloadgnutls-3e796a094e68e12bc05d4959dfb6abe46293d47a.tar.gz
handshake: parse new session ticket message
That does not include extension handling. Signed-off-by: Nikos Mavrogiannopoulos <nmav@redhat.com>
Diffstat (limited to 'lib/record.c')
-rw-r--r--lib/record.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/lib/record.c b/lib/record.c
index 5be4ba3094..44585078f9 100644
--- a/lib/record.c
+++ b/lib/record.c
@@ -756,6 +756,7 @@ record_add_to_buffers(gnutls_session_t session,
{
int ret;
+ const version_entry_st *ver = get_version(session);
if ((recv->type == type)
&& (type == GNUTLS_APPLICATION_DATA ||
@@ -912,6 +913,22 @@ record_add_to_buffers(gnutls_session_t session,
}
}
+ /* retrieve async handshake messages */
+ if (ver->tls13_sem) {
+ gnutls_buffer_st buf;
+
+ _gnutls_ro_buffer_from_datum(&buf, &bufel->msg);
+ ret = _gnutls13_recv_async_handshake(session,
+ &buf);
+ if (ret < 0) {
+ gnutls_assert();
+ } else {
+ ret = GNUTLS_E_AGAIN;
+ }
+
+ goto cleanup;
+ }
+
/* This is legal if HELLO_REQUEST is received - and we are a client.
* If we are a server, a client may initiate a renegotiation at any time.
*/