mirror of
https://github.com/curl/curl.git
synced 2026-08-25 23:33:37 +03:00
hsts: add read/write callbacks
- read/write callback options - man pages for the 4 new setopts - test 1915 verifies the callbacks Closes #5896
This commit is contained in:
parent
7385610d0c
commit
2cfc4ed983
27 changed files with 652 additions and 22 deletions
|
|
@ -954,6 +954,33 @@ typedef enum {
|
|||
#define CURLALTSVC_H2 (1<<4)
|
||||
#define CURLALTSVC_H3 (1<<5)
|
||||
|
||||
|
||||
struct curl_hstsentry {
|
||||
char *name;
|
||||
size_t namelen;
|
||||
unsigned int includeSubDomains:1;
|
||||
char expire[18]; /* YYYYMMDD HH:MM:SS [null-terminated] */
|
||||
};
|
||||
|
||||
struct curl_index {
|
||||
size_t index; /* the provided entry's "index" or count */
|
||||
size_t total; /* total number of entries to save */
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
CURLSTS_OK,
|
||||
CURLSTS_DONE,
|
||||
CURLSTS_FAIL
|
||||
} CURLSTScode;
|
||||
|
||||
typedef CURLSTScode (*curl_hstsread_callback)(CURL *easy,
|
||||
struct curl_hstsentry *e,
|
||||
void *userp);
|
||||
typedef CURLSTScode (*curl_hstswrite_callback)(CURL *easy,
|
||||
struct curl_hstsentry *e,
|
||||
struct curl_index *i,
|
||||
void *userp);
|
||||
|
||||
/* CURLHSTS_* are bits for the CURLOPT_HSTS option */
|
||||
#define CURLHSTS_ENABLE (long)(1<<0)
|
||||
#define CURLHSTS_READONLYFILE (long)(1<<1)
|
||||
|
|
@ -2038,6 +2065,14 @@ typedef enum {
|
|||
/* HSTS file name */
|
||||
CURLOPT(CURLOPT_HSTS, CURLOPTTYPE_STRINGPOINT, 300),
|
||||
|
||||
/* HSTS read callback */
|
||||
CURLOPT(CURLOPT_HSTSREADFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 301),
|
||||
CURLOPT(CURLOPT_HSTSREADDATA, CURLOPTTYPE_CBPOINT, 302),
|
||||
|
||||
/* HSTS write callback */
|
||||
CURLOPT(CURLOPT_HSTSWRITEFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 303),
|
||||
CURLOPT(CURLOPT_HSTSWRITEDATA, CURLOPTTYPE_CBPOINT, 304),
|
||||
|
||||
CURLOPT_LASTENTRY /* the last unused */
|
||||
} CURLoption;
|
||||
|
||||
|
|
|
|||
|
|
@ -273,6 +273,7 @@ CURLWARNING(_curl_easy_getinfo_err_curl_off_t,
|
|||
(option) == CURLOPT_FTPPORT || \
|
||||
(option) == CURLOPT_FTP_ACCOUNT || \
|
||||
(option) == CURLOPT_FTP_ALTERNATIVE_TO_USER || \
|
||||
(option) == CURLOPT_HSTS || \
|
||||
(option) == CURLOPT_INTERFACE || \
|
||||
(option) == CURLOPT_ISSUERCERT || \
|
||||
(option) == CURLOPT_KEYPASSWD || \
|
||||
|
|
@ -356,6 +357,8 @@ CURLWARNING(_curl_easy_getinfo_err_curl_off_t,
|
|||
(option) == CURLOPT_DEBUGDATA || \
|
||||
(option) == CURLOPT_FNMATCH_DATA || \
|
||||
(option) == CURLOPT_HEADERDATA || \
|
||||
(option) == CURLOPT_HSTSREADDATA || \
|
||||
(option) == CURLOPT_HSTSWRITEDATA || \
|
||||
(option) == CURLOPT_INTERLEAVEDATA || \
|
||||
(option) == CURLOPT_IOCTLDATA || \
|
||||
(option) == CURLOPT_OPENSOCKETDATA || \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue