curl_formdata: fix to pass long where missing, document `CURLFORM_NAMELENGTH`
No binary (build failed)
—
(log yok)
| @@ -112,6 +112,12 @@ If you pass a 0 (zero) for this option, libcurl calls strlen() on the contents | |
| to figure out the size. If you really want to send a zero byte content then | |
| you must make sure strlen() on the data pointer returns zero. | |
| + | ## CURLFORM_NAMELENGTH |
| + | |
| + | followed by a long giving the length of the name. Pass this option to set |
| + | the length of *CURLFORM_COPYNAME* and *CURLFORM_PTRNAME* strings, if they are |
| + | not null-terminated. |
| + | |
| ## CURLFORM_FILECONTENT | |
| followed by a filename, causes that file to be read and its contents used | |
| @@ -278,7 +284,7 @@ int main(void) | |
| CURLFORM_COPYNAME, "name", | |
| CURLFORM_BUFFER, "data", | |
| CURLFORM_BUFFERPTR, record, | |
| - | CURLFORM_BUFFERLENGTH, sizeof(record), |
| + | CURLFORM_BUFFERLENGTH, (long)sizeof(record), |
| CURLFORM_END); | |
| /* no option needed for the end marker */ | |
| @@ -184,7 +184,7 @@ static void free_formlist(struct FormInfo *ptr) | |
| * | |
| * name/value pair where only the content pointer is remembered: | |
| * curl_formadd(&post, &last, CURLFORM_COPYNAME, "name", | |
| - | * CURLFORM_PTRCONTENTS, ptr, CURLFORM_CONTENTSLENGTH, 10, |
| + | * CURLFORM_PTRCONTENTS, ptr, CURLFORM_CONTENTSLENGTH, 10L, |
| * CURLFORM_END); | |
| * (if CURLFORM_CONTENTSLENGTH is missing strlen () is used) | |
| * | |
| @@ -48,7 +48,6 @@ static CURLcode test_lib650(const char *URL) | |
| struct curl_forms formarray[3]; | |
| size_t formlength = 0; | |
| char flbuf[32]; | |
| - | long contentlength = 0; |
| static const char testname[] = "fieldname"; | |
| static char testdata[] = "this is what we post to the silly web server"; | |
| @@ -83,19 +82,17 @@ static CURLcode test_lib650(const char *URL) | |
| goto test_cleanup; | |
| } | |
| - | contentlength = (long)(strlen(testdata) - 1); |
| - | |
| /* Use a form array for the non-copy test. */ | |
| formarray[0].option = CURLFORM_PTRCONTENTS; | |
| formarray[0].value = testdata; | |
| formarray[1].option = CURLFORM_CONTENTSLENGTH; | |
| - | formarray[1].value = (char *)(size_t)contentlength; |
| + | formarray[1].value = (char *)(strlen(testdata) - 1); |
| formarray[2].option = CURLFORM_END; | |
| formarray[2].value = NULL; | |
| formrc = curl_formadd(&formpost, | |
| &lastptr, | |
| CURLFORM_PTRNAME, testname, | |
| - | CURLFORM_NAMELENGTH, sizeof(testname) - 2, |
| + | CURLFORM_NAMELENGTH, (long)(sizeof(testname) - 2), |
| CURLFORM_ARRAY, formarray, | |
| CURLFORM_FILENAME, "remotefile.txt", | |
| CURLFORM_END); | |