summaryrefslogtreecommitdiff
path: root/src/cli.c
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-05 13:26:58 +0300
committerNikos Mavrogiannopoulos <nmav@gnutls.org>2013-05-05 13:26:58 +0300
commitb61a0d3d582c2e76f7407f1c1fd64a4bcdc74292 (patch)
tree2c287fa600a4dcc14d764feb9887d93f9988347e /src/cli.c
parent8aee8b3ee7716970c7ca8c261175acd1e1ab94c0 (diff)
downloadgnutls-b61a0d3d582c2e76f7407f1c1fd64a4bcdc74292.tar.gz
Improved ALPN support in gnutls-cli
Diffstat (limited to 'src/cli.c')
-rw-r--r--src/cli.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/cli.c b/src/cli.c
index 5b69ce0dae..5a23f9168f 100644
--- a/src/cli.c
+++ b/src/cli.c
@@ -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);