Provided by: libcurl4-doc_7.68.0-1ubuntu2.22_all bug

NAME

       CURLOPT_ALTSVC_CTRL - control alt-svc behavior

SYNOPSIS

       #include <curl/curl.h>

       #define CURLALTSVC_IMMEDIATELY  (1<<0)
       #define CURLALTSVC_READONLYFILE (1<<2)
       #define CURLALTSVC_H1           (1<<3)
       #define CURLALTSVC_H2           (1<<4)
       #define CURLALTSVC_H3           (1<<5)

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC_CTRL, long bitmask);

EXPERIMENTAL

       Warning:  this feature is early code and is marked as experimental. It can only be enabled
       by explicitly telling configure with --enable-alt-svc. You are advised to not ship this in
       production before the experimental label is removed.

DESCRIPTION

       Populate  the  long  bitmask  with  the correct set of features to instruct libcurl how to
       handle Alt-Svc for the transfers using this handle.

       libcurl will only accept Alt-Svc headers over a secure transport, meaning HTTPS.  It  will
       also  only  complete  a request to an alternative origin if that origin is properly hosted
       over HTTPS. These requirements are there to make sure both the source and the  destination
       are legitimate.

       Setting any bit will enable the alt-svc engine.

       CURLALTSVC_IMMEDIATELY
              If an Alt-Svc: header is received, this instructs libcurl to switch to one of those
              alternatives asap rather than to save  it  and  use  for  the  next  request.  (Not
              currently supported).

       CURLALTSVC_READONLYFILE
              Do  not  write  the alt-svc cache back to the file specified with CURLOPT_ALTSVC(3)
              even if it gets updated. By default a file specified with that option will be  read
              and written to as deemed necessary.

       CURLALTSVC_H1
              Accept alternative services offered over HTTP/1.1.

       CURLALTSVC_H2
              Accept  alternative services offered over HTTP/2. This will only be used if libcurl
              was also built to actually support HTTP/2, otherwise this bit will be ignored.

       CURLALTSVC_H3
              Accept alternative services offered over HTTP/3. This will only be used if  libcurl
              was also built to actually support HTTP/3, otherwise this bit will be ignored.

DEFAULT

       0. No Alt-Svc treatment.

PROTOCOLS

       HTTPS

EXAMPLE

       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_ALTSVC_CTRL, CURLALTSVC_H1);
         curl_easy_setopt(curl, CURLOPT_ALTSVC, "altsvc-cache.txt");
         curl_easy_perform(curl);
       }

AVAILABILITY

       Added in 7.64.1

RETURN VALUE

       Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.

SEE ALSO

       CURLOPT_ALTSVC(3), CURLOPT_CONNECT_TO(3), CURLOPT_RESOLVE(3),