diff options
Diffstat (limited to 'src/lib/libtls/tls_client.c')
| -rw-r--r-- | src/lib/libtls/tls_client.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/lib/libtls/tls_client.c b/src/lib/libtls/tls_client.c index baa4805f57..682153ca65 100644 --- a/src/lib/libtls/tls_client.c +++ b/src/lib/libtls/tls_client.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls_client.c,v 1.14 2015/02/11 06:46:33 jsing Exp $ */ | 1 | /* $OpenBSD: tls_client.c,v 1.15 2015/02/11 07:01:10 jsing Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -83,6 +83,13 @@ tls_connect_host(struct tls *ctx, const char *host, const char *port, | |||
| 83 | int | 83 | int |
| 84 | tls_connect(struct tls *ctx, const char *host, const char *port) | 84 | tls_connect(struct tls *ctx, const char *host, const char *port) |
| 85 | { | 85 | { |
| 86 | return tls_connect_servername(ctx, host, port, NULL); | ||
| 87 | } | ||
| 88 | |||
| 89 | int | ||
| 90 | tls_connect_servername(struct tls *ctx, const char *host, const char *port, | ||
| 91 | const char *servername) | ||
| 92 | { | ||
| 86 | const char *h = NULL, *p = NULL; | 93 | const char *h = NULL, *p = NULL; |
| 87 | char *hs = NULL, *ps = NULL; | 94 | char *hs = NULL, *ps = NULL; |
| 88 | int rv = -1, s = -1, ret; | 95 | int rv = -1, s = -1, ret; |
| @@ -128,7 +135,10 @@ tls_connect(struct tls *ctx, const char *host, const char *port) | |||
| 128 | (s = tls_connect_host(ctx, h, p, AF_UNSPEC, AI_ADDRCONFIG)) == -1) | 135 | (s = tls_connect_host(ctx, h, p, AF_UNSPEC, AI_ADDRCONFIG)) == -1) |
| 129 | goto err; | 136 | goto err; |
| 130 | 137 | ||
| 131 | if (tls_connect_socket(ctx, s, h) != 0) { | 138 | if (servername == NULL) |
| 139 | servername = h; | ||
| 140 | |||
| 141 | if (tls_connect_socket(ctx, s, servername) != 0) { | ||
| 132 | close(s); | 142 | close(s); |
| 133 | goto err; | 143 | goto err; |
| 134 | } | 144 | } |
| @@ -136,7 +146,6 @@ tls_connect(struct tls *ctx, const char *host, const char *port) | |||
| 136 | rv = 0; | 146 | rv = 0; |
| 137 | 147 | ||
| 138 | err: | 148 | err: |
| 139 | |||
| 140 | free(hs); | 149 | free(hs); |
| 141 | free(ps); | 150 | free(ps); |
| 142 | 151 | ||
