diff options
Diffstat (limited to 'src/lib/libssl/tls13_record_layer.c')
-rw-r--r-- | src/lib/libssl/tls13_record_layer.c | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c index 2188d517a8..658a6d6a9e 100644 --- a/src/lib/libssl/tls13_record_layer.c +++ b/src/lib/libssl/tls13_record_layer.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: tls13_record_layer.c,v 1.44 2020/05/20 14:58:33 beck Exp $ */ | 1 | /* $OpenBSD: tls13_record_layer.c,v 1.45 2020/05/23 11:57:41 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
4 | * | 4 | * |
@@ -34,6 +34,7 @@ struct tls13_record_layer { | |||
34 | int handshake_completed; | 34 | int handshake_completed; |
35 | int legacy_alerts_allowed; | 35 | int legacy_alerts_allowed; |
36 | int phh; | 36 | int phh; |
37 | int phh_retry; | ||
37 | 38 | ||
38 | /* | 39 | /* |
39 | * Read and/or write channels are closed due to an alert being | 40 | * Read and/or write channels are closed due to an alert being |
@@ -233,6 +234,12 @@ tls13_record_layer_handshake_completed(struct tls13_record_layer *rl) | |||
233 | rl->handshake_completed = 1; | 234 | rl->handshake_completed = 1; |
234 | } | 235 | } |
235 | 236 | ||
237 | void | ||
238 | tls13_record_layer_set_retry_after_phh(struct tls13_record_layer *rl, int retry) | ||
239 | { | ||
240 | rl->phh_retry = retry; | ||
241 | } | ||
242 | |||
236 | static ssize_t | 243 | static ssize_t |
237 | tls13_record_layer_process_alert(struct tls13_record_layer *rl) | 244 | tls13_record_layer_process_alert(struct tls13_record_layer *rl) |
238 | { | 245 | { |
@@ -930,8 +937,12 @@ tls13_record_layer_read_internal(struct tls13_record_layer *rl, | |||
930 | */ | 937 | */ |
931 | rl->phh = 0; | 938 | rl->phh = 0; |
932 | 939 | ||
933 | if (ret == TLS13_IO_SUCCESS) | 940 | if (ret == TLS13_IO_SUCCESS) { |
934 | return TLS13_IO_WANT_RETRY; | 941 | if (rl->phh_retry) |
942 | return TLS13_IO_WANT_RETRY; | ||
943 | |||
944 | return TLS13_IO_WANT_POLLIN; | ||
945 | } | ||
935 | 946 | ||
936 | return ret; | 947 | return ret; |
937 | } | 948 | } |