minor fix to support multiple files in one formadd() call
diff --git a/lib/formdata.c b/lib/formdata.c
index 0651a7b..e0c487d 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -411,7 +411,7 @@
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 @@
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 @@
if (form->contenttype)
prevtype = form->contenttype;
}
- form = form->more;
}
}
@@ -1391,12 +1392,12 @@
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");