diff options
Diffstat (limited to 'src/lib/libssl/tls13_legacy.c')
| -rw-r--r-- | src/lib/libssl/tls13_legacy.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/lib/libssl/tls13_legacy.c b/src/lib/libssl/tls13_legacy.c index 3368600c60..f668dd4ea3 100644 --- a/src/lib/libssl/tls13_legacy.c +++ b/src/lib/libssl/tls13_legacy.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_legacy.c,v 1.30 2021/09/14 14:31:21 tb Exp $ */ | 1 | /* $OpenBSD: tls13_legacy.c,v 1.31 2021/09/16 19:25:30 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 | * |
| @@ -96,6 +96,30 @@ tls13_legacy_wire_write_cb(const void *buf, size_t n, void *arg) | |||
| 96 | return tls13_legacy_wire_write(ctx->ssl, buf, n); | 96 | return tls13_legacy_wire_write(ctx->ssl, buf, n); |
| 97 | } | 97 | } |
| 98 | 98 | ||
| 99 | static ssize_t | ||
| 100 | tls13_legacy_wire_flush(SSL *ssl) | ||
| 101 | { | ||
| 102 | if (BIO_flush(ssl->wbio) <= 0) { | ||
| 103 | if (BIO_should_write(ssl->wbio)) | ||
| 104 | return TLS13_IO_WANT_POLLOUT; | ||
| 105 | |||
| 106 | if (ERR_peek_error() == 0 && errno != 0) | ||
| 107 | SYSerror(errno); | ||
| 108 | |||
| 109 | return TLS13_IO_FAILURE; | ||
| 110 | } | ||
| 111 | |||
| 112 | return TLS13_IO_SUCCESS; | ||
| 113 | } | ||
| 114 | |||
| 115 | ssize_t | ||
| 116 | tls13_legacy_wire_flush_cb(void *arg) | ||
| 117 | { | ||
| 118 | struct tls13_ctx *ctx = arg; | ||
| 119 | |||
| 120 | return tls13_legacy_wire_flush(ctx->ssl); | ||
| 121 | } | ||
| 122 | |||
| 99 | static void | 123 | static void |
| 100 | tls13_legacy_error(SSL *ssl) | 124 | tls13_legacy_error(SSL *ssl) |
| 101 | { | 125 | { |
