aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2005-12-08 14:01:04 +0000
committerYang Tse <yangsita@gmail.com>2005-12-08 14:01:04 +0000
commitfdbe0df6e77ffcf7249da605e6881f32f2c4d25f (patch)
tree35a6d4ff5fe9a10877a35a76e3c0fd9c657a983a /src
parent93d59520e44915d6cd5f60db4a200d6882a5c678 (diff)
Fix a couple of compiler warnings
Diffstat (limited to 'src')
-rw-r--r--src/main.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/src/main.c b/src/main.c
index c697f6d65..a9a0c30fc 100644
--- a/src/main.c
+++ b/src/main.c
@@ -2594,9 +2594,9 @@ struct OutStruct {
curl_off_t init; /* original size (non-zero when appending) */
};
-static int my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
+static size_t my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
{
- int rc;
+ size_t rc;
struct OutStruct *out=(struct OutStruct *)stream;
struct Configurable *config = out->config;
curl_off_t size = (curl_off_t)(sz * nmemb); /* typecast to prevent
@@ -2607,7 +2607,14 @@ static int my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
out->stream=fopen(out->filename, "wb");
if(!out->stream) {
warnf(config, "Failed to create the file %s\n", out->filename);
- return -1; /* failure */
+ /*
+ * Once that libcurl has called back my_fwrite() the returned value
+ * is checked against the amount that was intended to be written, if
+ * it does not match then it fails with CURLE_WRITE_ERROR. So at this
+ * point returning a value different from sz*nmemb indicates failure.
+ */
+ rc = (0 == (sz * nmemb)) ? 1 : 0;
+ return rc; /* failure */
}
}
@@ -2662,7 +2669,7 @@ static int my_fwrite(void *buffer, size_t sz, size_t nmemb, void *stream)
rc = fwrite(buffer, sz, nmemb, out->stream);
- if((int)(sz * nmemb) == rc) {
+ if((sz * nmemb) == rc) {
/* we added this amount of data to the output */
out->bytes += (sz * nmemb);
}
@@ -2700,9 +2707,9 @@ static curlioerr my_ioctl(CURL *handle, curliocmd cmd, void *userp)
return CURLIOE_OK;
}
-static int my_fread(void *buffer, size_t sz, size_t nmemb, void *userp)
+static size_t my_fread(void *buffer, size_t sz, size_t nmemb, void *userp)
{
- int rc;
+ size_t rc;
struct InStruct *in=(struct InStruct *)userp;
struct Configurable *config = in->config;
curl_off_t size = (curl_off_t)(sz * nmemb); /* typecast to prevent warnings
@@ -2763,7 +2770,10 @@ static int my_fread(void *buffer, size_t sz, size_t nmemb, void *userp)
rc = fread(buffer, sz, nmemb, in->stream);
#if 0
- fprintf(stderr, "CALLBACK returning %d bytes data\n", (int)rc);
+ if (sizeof(rc) > sizeof(unsigned int))
+ fprintf(stderr, "CALLBACK returning %lu bytes data\n", rc);
+ else
+ fprintf(stderr, "CALLBACK returning %u bytes data\n", rc);
#endif
return rc;
}