aboutsummaryrefslogtreecommitdiff
path: root/lib/formdata.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2001-10-29 13:21:25 +0000
committerDaniel Stenberg <daniel@haxx.se>2001-10-29 13:21:25 +0000
commite165332211567588a55c7d8198ccf0ac9f62e748 (patch)
tree44e449cb00339c4ded905fd09d3f8aa68c0c8f6f /lib/formdata.c
parentd25310cb6f58a6f6cc7f78fd302a40c5d7897d3e (diff)
minor fix to support multiple files in one formadd() call
Diffstat (limited to 'lib/formdata.c')
-rw-r--r--lib/formdata.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/formdata.c b/lib/formdata.c
index 0651a7b04..e0c487dc6 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -411,7 +411,7 @@ static struct HttpPost * AddHttpPost (char * name,
if(post) {
memset(post, 0, sizeof(struct HttpPost));
post->name = name;
- post->namelength = namelength?namelength:(long)strlen(name);
+ post->namelength = name?(namelength?namelength:(long)strlen(name)):0;
post->contents = value;
post->contentslength = contentslength;
post->contenttype = contenttype;
@@ -832,10 +832,12 @@ FORMcode FormAdd(struct HttpPost **httppost,
if(FORMADD_OK == return_value) {
/* go through the list, check for copleteness and if everything is
* alright add the HttpPost item otherwise set return_value accordingly */
- form = first_form;
- while (form != NULL) {
- if ( (!form->name) ||
- (!form->value) ||
+
+ post = NULL;
+ for(form = first_form;
+ form != NULL;
+ form = form->more) {
+ if ( ((!form->name || !form->value) && !post) ||
( (form->contentslength) &&
(form->flags & HTTPPOST_FILENAME) ) ||
( (form->flags & HTTPPOST_FILENAME) &&
@@ -880,7 +882,6 @@ FORMcode FormAdd(struct HttpPost **httppost,
if (form->contenttype)
prevtype = form->contenttype;
}
- form = form->more;
}
}
@@ -1391,12 +1392,12 @@ int main()
if(-1 == nread)
break;
- fwrite(buffer, nread, 1, stderr);
+ fwrite(buffer, nread, 1, stdout);
} while(1);
- fprintf(stderr, "size: %d\n", size);
+ fprintf(stdout, "size: %d\n", size);
if (errors)
- fprintf(stderr, "\n==> %d Test(s) failed!\n", errors);
+ fprintf(stdout, "\n==> %d Test(s) failed!\n", errors);
else
fprintf(stdout, "\nAll Tests seem to have worked (please check output)\n");