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 | { |