.\" generated by cd2nroff 0.1 from CURLMOPT_PUSHDATA.md .TH CURLMOPT_PUSHDATA 3 "March 22 2024" libcurl .SH NAME CURLMOPT_PUSHDATA \- pointer to pass to push callback .SH SYNOPSIS .nf #include CURLMcode curl_multi_setopt(CURLM *handle, CURLMOPT_PUSHDATA, void *pointer); .fi .SH DESCRIPTION Set a \fIpointer\fP to pass as the last argument to the \fICURLMOPT_PUSHFUNCTION(3)\fP callback. The pointer is not touched or used by libcurl itself, only passed on to the callback function. .SH DEFAULT NULL .SH PROTOCOLS HTTP(S) .SH EXAMPLE .nf #include /* only allow pushes for file names starting with "push-" */ int push_callback(CURL *parent, CURL *easy, size_t num_headers, struct curl_pushheaders *headers, void *clientp) { char *headp; int *transfers = (int *)clientp; FILE *out; headp = curl_pushheader_byname(headers, ":path"); if(headp && !strncmp(headp, "/push-", 6)) { fprintf(stderr, "The PATH is %s\\n", headp); /* save the push here */ out = fopen("pushed-stream", "wb"); /* write to this file */ curl_easy_setopt(easy, CURLOPT_WRITEDATA, out); (*transfers)++; /* one more */ return CURL_PUSH_OK; } return CURL_PUSH_DENY; } int main(void) { int counter; CURLM *multi = curl_multi_init(); curl_multi_setopt(multi, CURLMOPT_PUSHFUNCTION, push_callback); curl_multi_setopt(multi, CURLMOPT_PUSHDATA, &counter); } .fi .SH AVAILABILITY Added in 7.44.0 .SH RETURN VALUE Returns CURLM_OK if the option is supported, and CURLM_UNKNOWN_OPTION if not. .SH SEE ALSO .BR CURLMOPT_PIPELINING (3), .BR CURLMOPT_PUSHFUNCTION (3), .BR CURLOPT_PIPEWAIT (3), .BR RFC 7540