diff options
author | Daniel Stenberg <daniel@haxx.se> | 2019-03-03 11:17:52 +0100 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2019-03-03 11:17:52 +0100 |
commit | e1be8254534898fccafc5d6cd04f6235f283cfbd (patch) | |
tree | d48bbbf5cb59d93e82fc14f13f1b0c7a7e5044d3 /lib/http.c | |
parent | 4331a3b8fa40cc8d71b7abb36b096dccdc11e3cb (diff) | |
download | curl-e1be8254534898fccafc5d6cd04f6235f283cfbd.tar.gz |
alt-svc: the libcurl bits
Diffstat (limited to 'lib/http.c')
-rw-r--r-- | lib/http.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/lib/http.c b/lib/http.c index d0a01979d..f5709b68b 100644 --- a/lib/http.c +++ b/lib/http.c @@ -77,6 +77,7 @@ #include "http2.h" #include "connect.h" #include "strdup.h" +#include "altsvc.h" /* The last 3 #include files should be in this order */ #include "curl_printf.h" @@ -3978,6 +3979,20 @@ CURLcode Curl_http_readwrite_headers(struct Curl_easy *data, } } } +#ifdef USE_ALTSVC + /* If enabled, the header is incoming and this is over HTTPS */ + else if(data->asi && checkprefix("Alt-Svc:", k->p) && + (conn->handler->flags & PROTOPT_SSL)) { + /* the ALPN of the current request */ + enum alpnid id = (conn->httpversion == 20) ? ALPN_h2 : ALPN_h1; + result = Curl_altsvc_parse(data, data->asi, + &k->p[ strlen("Alt-Svc:") ], + id, conn->host.name, + curlx_uitous(conn->remote_port)); + if(result) + return result; + } +#endif else if(conn->handler->protocol & CURLPROTO_RTSP) { result = Curl_rtsp_parseheader(conn, k->p); if(result) |