Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_ALTSVC_CTRL(3)	   Library Functions Manual	CURLOPT_ALTSVC_CTRL(3)

NAME
       CURLOPT_ALTSVC_CTRL - control alt-svc behavior

SYNOPSIS
       #include	<curl/curl.h>

       #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);

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 only accepts Alt-Svc headers over a Secure  Transport,  meaning
       HTTPS.  It  also	 only  completes 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.

       Alternative services are	only used when setting up new connections.  If
       there exists an existing	connection to the host in the connection pool,
       then that is preferred.

       If  CURLOPT_ALTSVC(3)  is  set,	CURLOPT_ALTSVC_CTRL(3)	gets a default
       value corresponding to CURLALTSVC_H1 | CURLALTSVC_H2 | CURLALTSVC_H3  -
       the  HTTP/2 and HTTP/3 bits are only set	if libcurl was built with sup-
       port for	those versions.

       Setting any bit enables the alt-svc engine.

       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 is read and written to	as deemed nec-
	      essary.

       CURLALTSVC_H1
	      Accept alternative services offered over HTTP/1.1.

       CURLALTSVC_H2
	      Accept alternative services offered over HTTP/2.	This  is  only
	      used  if libcurl was also	built to actually support HTTP/2, oth-
	      erwise this bit is ignored.

       CURLALTSVC_H3
	      Accept alternative services offered over HTTP/3.	This  is  only
	      used  if libcurl was also	built to actually support HTTP/3, oth-
	      erwise this bit is ignored.

DEFAULT
       0 - Alt-Svc handling is disabled

PROTOCOLS
       This functionality affects http only

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

AVAILABILITY
       Added in	curl 7.64.1

RETURN VALUE
       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK	(0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).

SEE ALSO
       CURLOPT_ALTSVC(3), CURLOPT_CONNECT_TO(3), CURLOPT_RESOLVE(3)

libcurl				  2025-06-03		CURLOPT_ALTSVC_CTRL(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_ALTSVC_CTRL&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help