.\" generated by cd2nroff 0.1 from CURLOPT_HSTSREADDATA.md .TH CURLOPT_HSTSREADDATA 3 "2026-09-02" libcurl .SH NAME CURLOPT_HSTSREADDATA \- pointer passed to the HSTS read callback .SH SYNOPSIS .nf #include CURLcode curl_easy_setopt(CURL *handle, CURLOPT_HSTSREADDATA, void *pointer); .fi .SH DESCRIPTION Data \fIpointer\fP to pass to the HSTS read function. If you use the \fICURLOPT_HSTSREADFUNCTION(3)\fP option, this is the pointer you get as input in the 3rd argument to the callback. This option does not enable HSTS, you need to use \fICURLOPT_HSTS_CTRL(3)\fP to do that. .SH DEFAULT NULL .SH PROTOCOLS This functionality affects http only .SH EXAMPLE .nf struct MyData { void *custom; }; static CURLSTScode hsts_cb(CURL *easy, struct curl_hstsentry *sts, void *clientp) { /* populate the struct as documented */ return CURLSTS_OK; } int main(void) { CURL *curl = curl_easy_init(); struct MyData my_data; if(curl) { CURLcode result; curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); /* pass pointer that gets passed in to the CURLOPT_HSTSREADFUNCTION callback */ curl_easy_setopt(curl, CURLOPT_HSTSREADDATA, &my_data); /* set HSTS read callback */ curl_easy_setopt(curl, CURLOPT_HSTSREADFUNCTION, hsts_cb); result = curl_easy_perform(curl); curl_easy_cleanup(curl); } } .fi .SH AVAILABILITY Added in curl 7.74.0 .SH RETURN VALUE This returns CURLE_OK. .SH SEE ALSO .BR CURLOPT_HSTS (3), .BR CURLOPT_HSTSREADFUNCTION (3), .BR CURLOPT_HSTSWRITEDATA (3), .BR CURLOPT_HSTSWRITEFUNCTION (3)