diff options
Diffstat (limited to 'src/lib/libtls/tls_server.c')
| -rw-r--r-- | src/lib/libtls/tls_server.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/src/lib/libtls/tls_server.c b/src/lib/libtls/tls_server.c index cbe064e2f5..55b19e472c 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.6 2015/03/31 12:21:27 jsing Exp $ */ | 1 | /* $OpenBSD: tls_server.c,v 1.7 2015/03/31 14:03:38 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -99,7 +99,7 @@ err: | |||
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | int | 101 | int |
| 102 | tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | 102 | tls_accept_fds(struct tls *ctx, struct tls **cctx, int fd_read, int fd_write) |
| 103 | { | 103 | { |
| 104 | struct tls *conn_ctx = *cctx; | 104 | struct tls *conn_ctx = *cctx; |
| 105 | int ret, err; | 105 | int ret, err; |
| @@ -116,14 +116,13 @@ tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | |||
| 116 | } | 116 | } |
| 117 | *cctx = conn_ctx; | 117 | *cctx = conn_ctx; |
| 118 | 118 | ||
| 119 | conn_ctx->socket = socket; | ||
| 120 | |||
| 121 | if ((conn_ctx->ssl_conn = SSL_new(ctx->ssl_ctx)) == NULL) { | 119 | if ((conn_ctx->ssl_conn = SSL_new(ctx->ssl_ctx)) == NULL) { |
| 122 | tls_set_error(ctx, "ssl failure"); | 120 | tls_set_error(ctx, "ssl failure"); |
| 123 | goto err; | 121 | goto err; |
| 124 | } | 122 | } |
| 125 | 123 | ||
| 126 | if (SSL_set_fd(conn_ctx->ssl_conn, socket) != 1) { | 124 | if (SSL_set_rfd(conn_ctx->ssl_conn, fd_read) != 1 || |
| 125 | SSL_set_wfd(conn_ctx->ssl_conn, fd_write) != 1) { | ||
| 127 | tls_set_error(ctx, "ssl set fd failure"); | 126 | tls_set_error(ctx, "ssl set fd failure"); |
| 128 | goto err; | 127 | goto err; |
| 129 | } | 128 | } |
| @@ -143,3 +142,15 @@ tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | |||
| 143 | err: | 142 | err: |
| 144 | return (-1); | 143 | return (-1); |
| 145 | } | 144 | } |
| 145 | |||
| 146 | int | ||
| 147 | tls_accept_socket(struct tls *ctx, struct tls **cctx, int socket) | ||
| 148 | { | ||
| 149 | int rv; | ||
| 150 | |||
| 151 | rv = tls_accept_fds(ctx, cctx, socket, socket); | ||
| 152 | if (*cctx != NULL) | ||
| 153 | (*cctx)->socket = socket; | ||
| 154 | |||
| 155 | return (rv); | ||
| 156 | } | ||
