diff options
Diffstat (limited to 'src/lib/libtls/tls_server.c')
| -rw-r--r-- | src/lib/libtls/tls_server.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/src/lib/libtls/tls_server.c b/src/lib/libtls/tls_server.c index 8d71d2790f..8f34ecdded 100644 --- a/src/lib/libtls/tls_server.c +++ b/src/lib/libtls/tls_server.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls_server.c,v 1.4 2015/02/07 06:19:26 jsing Exp $ */ | 1 | /* $OpenBSD: tls_server.c,v 1.5 2015/02/07 09:50:09 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -102,7 +102,7 @@ int | |||
| 102 | tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | 102 | tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) |
| 103 | { | 103 | { |
| 104 | struct tls *conn_ctx = *cctx; | 104 | struct tls *conn_ctx = *cctx; |
| 105 | int ret, ssl_err; | 105 | int ret, err; |
| 106 | 106 | ||
| 107 | if ((ctx->flags & TLS_SERVER) == 0) { | 107 | if ((ctx->flags & TLS_SERVER) == 0) { |
| 108 | tls_set_error(ctx, "not a server context"); | 108 | tls_set_error(ctx, "not a server context"); |
| @@ -131,16 +131,11 @@ tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | |||
| 131 | } | 131 | } |
| 132 | 132 | ||
| 133 | if ((ret = SSL_accept(conn_ctx->ssl_conn)) != 1) { | 133 | if ((ret = SSL_accept(conn_ctx->ssl_conn)) != 1) { |
| 134 | ssl_err = SSL_get_error(conn_ctx->ssl_conn, ret); | 134 | err = tls_ssl_error(conn_ctx, ret, "accept"); |
| 135 | switch (ssl_err) { | 135 | if (err == TLS_READ_AGAIN || err == TLS_WRITE_AGAIN) { |
| 136 | case SSL_ERROR_WANT_READ: | 136 | return (err); |
| 137 | return (TLS_READ_AGAIN); | ||
| 138 | case SSL_ERROR_WANT_WRITE: | ||
| 139 | return (TLS_WRITE_AGAIN); | ||
| 140 | default: | ||
| 141 | tls_set_error(ctx, "TLS accept failed (%i)", ssl_err); | ||
| 142 | goto err; | ||
| 143 | } | 137 | } |
| 138 | goto err; | ||
| 144 | } | 139 | } |
| 145 | 140 | ||
| 146 | return (0); | 141 | return (0); |
