aboutsummaryrefslogtreecommitdiff
path: root/docs/libcurl/opts/CURLOPT_ALTSVC.md
blob: 6f6408474f0ae8c5d7b41730d4d02a6735a9e8be (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
---
c: Copyright (C) Daniel Stenberg, <daniel.se>, et al.
SPDX-License-Identifier: curl
Title: CURLOPT_ALTSVC
Section: 3
Source: libcurl
See-also:
  - CURLOPT_ALTSVC_CTRL (3)
  - CURLOPT_CONNECT_TO (3)
  - CURLOPT_COOKIEFILE (3)
  - CURLOPT_RESOLVE (3)
---
<!-- markdown-link-check-disable -->
# NAME

CURLOPT_ALTSVC - alt-svc cache file name

# SYNOPSIS

~~~c
#include <curl/curl.h>

CURLcode curl_easy_setopt(CURL *handle, CURLOPT_ALTSVC, char *filename);
~~~

# DESCRIPTION

Pass in a pointer to a *filename* to instruct libcurl to use that file as
the Alt-Svc cache to read existing cache contents from and possibly also write
it back to after a transfer, unless **CURLALTSVC_READONLYFILE** is set in
CURLOPT_ALTSVC_CTRL(3).

Specify a blank filename ("") to make libcurl not load from a file at all.

# DEFAULT

NULL. The alt-svc cache is not read nor written to file.

# PROTOCOLS

HTTPS

# EXAMPLE

~~~c
int main(void)
{
  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);
  }
}
~~~

# FILE FORMAT

A text based file with one line per alt-svc entry and each line consists of
nine space-separated fields.

An example line could look like

    h2 www.example.com 8443 h3 second.example.com 443 "20190808 06:18:37" 1 0

The fields of that line are:

## h2

ALPN id for the source origin

## www.example.comp

Hostname for the source origin

## 8443

Port number for the source origin

## h3

ALPN id for the destination host

## second.example.com

Hostname for the destination host

## 443

Port number for the destination host

## 2019*

Expiration date and time of this entry within double quotes. The date format
is "YYYYMMDD HH:MM:SS" and the time zone is GMT.

## 1

Boolean (1 or 0) if "persist" was set for this entry

## 0

Integer priority value (not currently used)

# AVAILABILITY

Added in 7.64.1

# RETURN VALUE

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