| .\" ************************************************************************** |
| .\" * _ _ ____ _ |
| .\" * Project ___| | | | _ \| | |
| .\" * / __| | | | |_) | | |
| .\" * | (__| |_| | _ <| |___ |
| .\" * \___|\___/|_| \_\_____| |
| .\" * |
| .\" * Copyright (C) 2020 - 2021, Daniel Stenberg, <daniel@haxx.se>, et al. |
| .\" * |
| .\" * This software is licensed as described in the file COPYING, which |
| .\" * you should have received as part of this distribution. The terms |
| .\" * are also available at https://curl.se/docs/copyright.html. |
| .\" * |
| .\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell |
| .\" * copies of the Software, and permit persons to whom the Software is |
| .\" * furnished to do so, under the terms of the COPYING file. |
| .\" * |
| .\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY |
| .\" * KIND, either express or implied. |
| .\" * |
| .\" ************************************************************************** |
| .\" |
| .TH CURLOPT_HSTS 3 "September 08, 2021" "libcurl 7.80.0" "curl_easy_setopt options" |
| |
| .SH NAME |
| CURLOPT_HSTS \- HSTS cache file name |
| .SH SYNOPSIS |
| .nf |
| #include <curl/curl.h> |
| |
| CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTS, char *filename); |
| .fi |
| .SH DESCRIPTION |
| Make the \fIfilename\fP point to a file name to load an existing HSTS cache |
| from, and to store the cache in when the easy handle is closed. Setting a file |
| name with this option will also enable HSTS for this handle (the equivalent of |
| setting \fICURLHSTS_ENABLE\fP with \fICURLOPT_HSTS_CTRL(3)\fP). |
| |
| If the given file does not exist or contains no HSTS entries at startup, the |
| HSTS cache will simply start empty. Setting the file name to NULL or "" will |
| only enable HSTS without reading from or writing to any file. |
| |
| If this option is set multiple times, libcurl will load cache entries from |
| each given file but will only store the last used name for later writing. |
| .SH "FILE FORMAT" |
| The HSTS cache is saved to and loaded from a text file with one entry per |
| physical line. Each line in the file has the following format: |
| |
| [host] [stamp] |
| |
| [host] is the domain name for the entry and the name is dot-prefixed if it is |
| a includeSubDomain entry (if the entry is valid for all subdmains to the name |
| as well or only for the exact name). |
| |
| [stamp] is the time (in UTC) when the entry expires and it uses the format |
| \&"YYYYMMDD HH:MM:SS". |
| |
| Lines starting with "#" are treated as comments and are ignored. There is |
| currently no length or size limit. |
| .SH DEFAULT |
| NULL, no file name |
| .SH PROTOCOLS |
| HTTPS and HTTP |
| .SH EXAMPLE |
| .nf |
| CURL *curl = curl_easy_init(); |
| if(curl) { |
| curl_easy_setopt(curl, CURLOPT_HSTS, "/home/user/.hsts-cache"); |
| curl_easy_perform(curl); |
| } |
| .fi |
| .SH AVAILABILITY |
| Added in 7.74.0 |
| .SH RETURN VALUE |
| Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not. |
| .SH "SEE ALSO" |
| .BR CURLOPT_HSTS_CTRL "(3), " CURLOPT_ALTSVC "(3), " CURLOPT_RESOLVE "(3), " |