phase. [Only works on unix-style/SIGALRM operating systems] */
CINIT(CONNECTTIMEOUT, LONG, 78),
+ /* Function that will be called to store headers (instead of fwrite). The
+ * parameters will use fwrite() syntax, make sure to follow them. */
+ CINIT(HEADERFUNCTION, FUNCTIONPOINT, 79),
+
CURLOPT_LASTENTRY /* the last unusued */
} CURLoption;
}
}
if((type & CLIENTWRITE_HEADER) && data->writeheader) {
- wrote = data->fwrite(ptr, 1, len, data->writeheader);
+ /*
+ * Write headers to the same callback or to the especially setup
+ * header callback function (added after version 7.7.1).
+ */
+ curl_write_callback writeit=
+ data->fwrite_header?data->fwrite_header:data->fwrite;
+
+ wrote = writeit(ptr, 1, len, data->writeheader);
if(wrote != len) {
failf (data, "Failed writing header");
return CURLE_WRITE_ERROR;
/* function that stores the output:*/
curl_write_callback fwrite;
+ /* optional function that stores the header output:*/
+ curl_write_callback fwrite_header;
+
/* function that reads the input:*/
curl_read_callback fread;