aboutsummaryrefslogtreecommitdiffstats
path: root/apps/s_server.c
diff options
context:
space:
mode:
authorTodd Short <tshort@akamai.com>2016-03-05 08:47:55 -0500
committerRich Salz <rsalz@openssl.org>2016-03-08 09:03:05 -0500
commit817cd0d52f0462039d1fe60462150be7f59d2002 (patch)
treedd075e91d6add68a3c4f493db1e66cce11c990a9 /apps/s_server.c
parentf18ce934889a36db42b7988e8acca9ac4f23299f (diff)
downloadopenssl-817cd0d52f0462039d1fe60462150be7f59d2002.tar.gz
GH787: Fix ALPN
* Perform ALPN after the SNI callback; the SSL_CTX may change due to that processing * Add flags to indicate that we actually sent ALPN, to properly error out if unexpectedly received. * clean up ssl3_free() no need to explicitly clear when doing memset * document ALPN functions Signed-off-by: Rich Salz <rsalz@openssl.org> Reviewed-by: Emilia Käsper <emilia@openssl.org>
Diffstat (limited to 'apps/s_server.c')
-rw-r--r--apps/s_server.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/apps/s_server.c b/apps/s_server.c
index 35a22f7900..69102d9e56 100644
--- a/apps/s_server.c
+++ b/apps/s_server.c
@@ -743,7 +743,7 @@ static int next_proto_cb(SSL *s, const unsigned char **data,
/* This the context that we pass to alpn_cb */
typedef struct tlsextalpnctx_st {
unsigned char *data;
- unsigned short len;
+ size_t len;
} tlsextalpnctx;
static int alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,
@@ -753,7 +753,7 @@ static int alpn_cb(SSL *s, const unsigned char **out, unsigned char *outlen,
if (!s_quiet) {
/* We can assume that |in| is syntactically valid. */
- unsigned i;
+ unsigned int i;
BIO_printf(bio_s_out, "ALPN protocols advertised by the client: ");
for (i = 0; i < inlen;) {
if (i)
@@ -1620,7 +1620,7 @@ int s_server_main(int argc, char *argv[])
}
#if !defined(OPENSSL_NO_NEXTPROTONEG)
if (next_proto_neg_in) {
- unsigned short len;
+ size_t len;
next_proto.data = next_protos_parse(&len, next_proto_neg_in);
if (next_proto.data == NULL)
goto end;
@@ -1631,7 +1631,7 @@ int s_server_main(int argc, char *argv[])
#endif
alpn_ctx.data = NULL;
if (alpn_in) {
- unsigned short len;
+ size_t len;
alpn_ctx.data = next_protos_parse(&len, alpn_in);
if (alpn_ctx.data == NULL)
goto end;