Loading lib/formdata.c +19 −11 Original line number Diff line number Diff line Loading @@ -1044,22 +1044,24 @@ void curl_formfree(struct curl_httppost *form) } while((form=next)); /* continue */ } struct FormData *Curl_getFormData(struct curl_httppost *post, CURLcode Curl_getFormData(struct FormData **finalform, struct curl_httppost *post, int *sizep) { struct FormData *form = NULL; struct FormData *firstform; struct curl_httppost *file; CURLcode result = CURLE_OK; int size =0; char *boundary; char *fileboundary=NULL; struct curl_slist* curList; *finalform=NULL; /* default form is empty */ if(!post) return NULL; /* no input => no output! */ return result; /* no input => no output! */ boundary = Curl_FormBoundary(); Loading Loading @@ -1166,17 +1168,21 @@ struct FormData *Curl_getFormData(struct curl_httppost *post, /*VMS?? Stream files are OK, as are FIXED & VAR files WITHOUT implied CC */ /*VMS?? For implied CC, every record needs to have a \n appended & 1 added to SIZE */ if(fileread) { while((nread = fread(buffer, 1, 1024, fileread))) { size += AddFormData(&form, buffer, nread); } while((nread = fread(buffer, 1, 1024, fileread))) size += AddFormData(&form, buffer, nread); if(fileread != stdin) fclose(fileread); } else { #if 0 /* File wasn't found, add a nothing field! */ size += AddFormData(&form, "", 0); #endif Curl_formclean(firstform); free(boundary); *finalform = NULL; return CURLE_READ_ERROR; } } else { Loading Loading @@ -1205,7 +1211,9 @@ struct FormData *Curl_getFormData(struct curl_httppost *post, free(boundary); return firstform; *finalform=firstform; return result; } int Curl_FormInit(struct Form *form, struct FormData *formdata ) Loading lib/formdata.h +4 −2 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ typedef struct FormInfo { int Curl_FormInit(struct Form *form, struct FormData *formdata ); struct FormData *Curl_getFormData(struct HttpPost *post, CURLcode Curl_getFormData(struct FormData **, struct HttpPost *post, int *size); /* fread() emulation */ Loading lib/http.c +7 −1 Original line number Diff line number Diff line Loading @@ -562,7 +562,13 @@ CURLcode Curl_http(struct connectdata *conn) if(HTTPREQ_POST_FORM == data->set.httpreq) { /* we must build the whole darned post sequence first, so that we have a size of the whole shebang before we start to send it */ http->sendit = Curl_getFormData(data->set.httppost, &http->postsize); result = Curl_getFormData(&http->sendit, data->set.httppost, &http->postsize); if(CURLE_OK != result) { /* Curl_getFormData() doesn't use failf() */ failf(data, "failed creating formpost data"); return result; } } if(!checkheaders(data, "Host:")) { Loading Loading
lib/formdata.c +19 −11 Original line number Diff line number Diff line Loading @@ -1044,22 +1044,24 @@ void curl_formfree(struct curl_httppost *form) } while((form=next)); /* continue */ } struct FormData *Curl_getFormData(struct curl_httppost *post, CURLcode Curl_getFormData(struct FormData **finalform, struct curl_httppost *post, int *sizep) { struct FormData *form = NULL; struct FormData *firstform; struct curl_httppost *file; CURLcode result = CURLE_OK; int size =0; char *boundary; char *fileboundary=NULL; struct curl_slist* curList; *finalform=NULL; /* default form is empty */ if(!post) return NULL; /* no input => no output! */ return result; /* no input => no output! */ boundary = Curl_FormBoundary(); Loading Loading @@ -1166,17 +1168,21 @@ struct FormData *Curl_getFormData(struct curl_httppost *post, /*VMS?? Stream files are OK, as are FIXED & VAR files WITHOUT implied CC */ /*VMS?? For implied CC, every record needs to have a \n appended & 1 added to SIZE */ if(fileread) { while((nread = fread(buffer, 1, 1024, fileread))) { size += AddFormData(&form, buffer, nread); } while((nread = fread(buffer, 1, 1024, fileread))) size += AddFormData(&form, buffer, nread); if(fileread != stdin) fclose(fileread); } else { #if 0 /* File wasn't found, add a nothing field! */ size += AddFormData(&form, "", 0); #endif Curl_formclean(firstform); free(boundary); *finalform = NULL; return CURLE_READ_ERROR; } } else { Loading Loading @@ -1205,7 +1211,9 @@ struct FormData *Curl_getFormData(struct curl_httppost *post, free(boundary); return firstform; *finalform=firstform; return result; } int Curl_FormInit(struct Form *form, struct FormData *formdata ) Loading
lib/formdata.h +4 −2 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ typedef struct FormInfo { int Curl_FormInit(struct Form *form, struct FormData *formdata ); struct FormData *Curl_getFormData(struct HttpPost *post, CURLcode Curl_getFormData(struct FormData **, struct HttpPost *post, int *size); /* fread() emulation */ Loading
lib/http.c +7 −1 Original line number Diff line number Diff line Loading @@ -562,7 +562,13 @@ CURLcode Curl_http(struct connectdata *conn) if(HTTPREQ_POST_FORM == data->set.httpreq) { /* we must build the whole darned post sequence first, so that we have a size of the whole shebang before we start to send it */ http->sendit = Curl_getFormData(data->set.httppost, &http->postsize); result = Curl_getFormData(&http->sendit, data->set.httppost, &http->postsize); if(CURLE_OK != result) { /* Curl_getFormData() doesn't use failf() */ failf(data, "failed creating formpost data"); return result; } } if(!checkheaders(data, "Host:")) { Loading