From 39abde5db5b095bc20b9203d8c0174e4f047fee2 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 22 Nov 2000 12:53:56 +0000 Subject: Added the client_write() function --- lib/sendf.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'lib') diff --git a/lib/sendf.c b/lib/sendf.c index 447a47390..11914d5e8 100644 --- a/lib/sendf.c +++ b/lib/sendf.c @@ -180,6 +180,40 @@ size_t ssend(int fd, struct connectdata *conn, void *mem, size_t len) return bytes_written; } +/* client_write() sends data to the write callback(s) + + The bit pattern defines to what "streams" to write to. Body and/or header. + The defines are in sendf.h of course. + */ +CURLcode client_write(struct UrlData *data, + int type, + char *ptr, + size_t len) +{ + size_t wrote; + + if(0 == len) + len = strlen(ptr); + + if(type & CLIENTWRITE_BODY) { + wrote = data->fwrite(ptr, 1, len, data->out); + if(wrote != len) { + failf (data, "Failed writing body"); + return CURLE_WRITE_ERROR; + } + } + if((type & CLIENTWRITE_HEADER) && data->writeheader) { + wrote = data->fwrite(ptr, 1, len, data->writeheader); + if(wrote != len) { + failf (data, "Failed writing header"); + return CURLE_WRITE_ERROR; + } + } + + return CURLE_OK; +} + + /* * add_buffer_init() returns a fine buffer struct */ -- cgit v1.2.3