vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Jan 13 21:58:08 2016 +0200| [16847983e25f19cf8c617664ccfcf19d6602b0f6] | committer: Rémi Denis-Courmont
https: make HTTP/2 ALPN flag an input/output parameter This enables forcing HTTP/1 (for proxies). > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=16847983e25f19cf8c617664ccfcf19d6602b0f6 --- modules/access/http/connmgr.c | 11 +++++------ modules/access/http/transport.c | 2 +- modules/access/http/tunnel.c | 4 ++-- modules/access/http/tunnel_test.c | 2 +- 4 files changed, 9 insertions(+), 10 deletions(-) diff --git a/modules/access/http/connmgr.c b/modules/access/http/connmgr.c index b7a3808..7a0e4b1 100644 --- a/modules/access/http/connmgr.c +++ b/modules/access/http/connmgr.c @@ -39,7 +39,7 @@ struct vlc_https_connecting vlc_tls_creds_t *creds; const char *host; unsigned port; - bool http2; + bool *http2; vlc_sem_t done; }; @@ -71,12 +71,12 @@ static void *vlc_https_connect_thread(void *data) char *proxy = vlc_https_proxy_find(c->host, c->port); if (proxy != NULL) { - tls = vlc_https_connect_proxy(c->creds, c->host, c->port, &c->http2, + tls = vlc_https_connect_proxy(c->creds, c->host, c->port, c->http2, proxy); free(proxy); } else - tls = vlc_https_connect(c->creds, c->host, c->port, &c->http2); + tls = vlc_https_connect(c->creds, c->host, c->port, c->http2); vlc_sem_post(&c->done); return tls; } @@ -92,6 +92,7 @@ static vlc_tls_t *vlc_https_connect_i11e(vlc_tls_creds_t *creds, c.creds = creds; c.host = host; c.port = port; + c.http2 = http_two; vlc_sem_init(&c.done, 0); if (vlc_clone(&th, vlc_https_connect_thread, &c, @@ -108,8 +109,6 @@ static vlc_tls_t *vlc_https_connect_i11e(vlc_tls_creds_t *creds, if (res == VLC_THREAD_CANCELED) res = NULL; - if (res != NULL) - *http_two = c.http2; return res; } @@ -229,7 +228,7 @@ static struct vlc_http_msg *vlc_https_request(struct vlc_http_mgr *mgr, if (resp != NULL) return resp; /* existing connection reused */ - bool http2; + bool http2 = true; vlc_tls_t *tls = vlc_https_connect_i11e(mgr->creds, host, port, &http2); if (tls == NULL) return NULL; diff --git a/modules/access/http/transport.c b/modules/access/http/transport.c index 81ca4c2..5b737f9 100644 --- a/modules/access/http/transport.c +++ b/modules/access/http/transport.c @@ -136,7 +136,7 @@ vlc_tls_t *vlc_https_connect(vlc_tls_creds_t *creds, const char *name, char *alp; vlc_tls_t *tls = vlc_tls_ClientSessionCreateFD(creds, fd, name, "https", - alpn, &alp); + alpn + !*two, &alp); if (tls == NULL) { net_Close(fd); diff --git a/modules/access/http/tunnel.c b/modules/access/http/tunnel.c index 1ea7cee..42cc237 100644 --- a/modules/access/http/tunnel.c +++ b/modules/access/http/tunnel.c @@ -168,8 +168,8 @@ vlc_tls_t *vlc_https_connect_proxy(vlc_tls_creds_t *creds, session->close = vlc_http_tls_close_ignore; vlc_http_msg_destroy(resp); /* <- session is destroyed here */ - session = vlc_tls_ClientSessionCreateFD(creds, fd, hostname, "https", alpn, - &alp); + session = vlc_tls_ClientSessionCreateFD(creds, fd, hostname, "https", + alpn + !*two, &alp); #endif if (session == NULL) { diff --git a/modules/access/http/tunnel_test.c b/modules/access/http/tunnel_test.c index 75e6eaf..7e59980 100644 --- a/modules/access/http/tunnel_test.c +++ b/modules/access/http/tunnel_test.c @@ -129,7 +129,7 @@ int main(void) { char *url; unsigned port; - bool two; + bool two = false; /* Test bad URLs */ vlc_https_connect_proxy(NULL, "www.example.com", 0, &two, _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
