aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2001-04-10 06:49:32 +0000
committerDaniel Stenberg <daniel@haxx.se>2001-04-10 06:49:32 +0000
commit025fa762f644c9c1438c6669c4fe3e1800a112b5 (patch)
tree80061af2fca5277f748f7b8ca4d0afc3042ede6e /lib
parentac510ab6a4bd4dbce0db069d73952ac01ddc2647 (diff)
Added new CURLOPT_HEADERFUNCTION callback for writing headers only
Diffstat (limited to 'lib')
-rw-r--r--lib/sendf.c9
-rw-r--r--lib/urldata.h3
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/sendf.c b/lib/sendf.c
index 868aa887a..25ccb926d 100644
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@ -236,7 +236,14 @@ CURLcode Curl_client_write(struct UrlData *data,
}
}
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;
diff --git a/lib/urldata.h b/lib/urldata.h
index aef8435c4..5c019946f 100644
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@ -485,6 +485,9 @@ struct UrlData {
/* 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;