Adding support for receiving early data on the server.
BUG=76
Change-Id: Ie894ea5d327f88e66b234767de437dbe5c67c41d
Reviewed-on: https://boringssl-review.googlesource.com/12960
Reviewed-by: David Benjamin <davidben@google.com>
Commit-Queue: David Benjamin <davidben@google.com>
CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org>
diff --git a/ssl/handshake_client.c b/ssl/handshake_client.c
index 3898c1b..7eddd35 100644
--- a/ssl/handshake_client.c
+++ b/ssl/handshake_client.c
@@ -406,6 +406,7 @@
case SSL3_ST_FALSE_START:
hs->state = SSL3_ST_CR_SESSION_TICKET_A;
hs->in_false_start = 1;
+ hs->can_early_write = 1;
ret = 1;
goto end;
@@ -457,13 +458,21 @@
}
break;
- case SSL_ST_TLS13:
- ret = tls13_handshake(hs);
+ case SSL_ST_TLS13: {
+ int early_return = 0;
+ ret = tls13_handshake(hs, &early_return);
if (ret <= 0) {
goto end;
}
+
+ if (early_return) {
+ ret = 1;
+ goto end;
+ }
+
hs->state = SSL3_ST_FINISH_CLIENT_HANDSHAKE;
break;
+ }
case SSL3_ST_FINISH_CLIENT_HANDSHAKE:
ssl->method->release_current_message(ssl, 1 /* free_buffer */);