diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-05-05 13:26:58 +0300 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2013-05-05 13:26:58 +0300 |
commit | b61a0d3d582c2e76f7407f1c1fd64a4bcdc74292 (patch) | |
tree | 2c287fa600a4dcc14d764feb9887d93f9988347e /src/cli.c | |
parent | 8aee8b3ee7716970c7ca8c261175acd1e1ab94c0 (diff) | |
download | gnutls-b61a0d3d582c2e76f7407f1c1fd64a4bcdc74292.tar.gz |
Improved ALPN support in gnutls-cli
Diffstat (limited to 'src/cli.c')
-rw-r--r-- | src/cli.c | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -629,6 +629,7 @@ init_tls_session (const char *hostname) { const char *err; int ret; + unsigned i; gnutls_session_t session; if (priorities == NULL) @@ -665,8 +666,16 @@ init_tls_session (const char *hostname) if (HAVE_OPT(ALPN)) { - gnutls_datum_t p = { OPT_ARG(ALPN), strlen(OPT_ARG(ALPN)) }; - gnutls_alpn_set_protocols( session, &p, 1); + unsigned proto_n = STACKCT_OPT(ALPN); + char** protos = (void*)STACKLST_OPT(ALPN); + gnutls_datum_t p[proto_n]; + + for (i=0;i<proto_n;i++) + { + p[i].data = (void*)protos[i]; + p[i].size = strlen(protos[i]); + } + gnutls_alpn_set_protocols( session, p, proto_n); } gnutls_credentials_set (session, GNUTLS_CRD_ANON, anon_cred); |