diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2018-01-26 17:45:20 +0100 |
---|---|---|
committer | Patrick Monnerat <patrick@monnerat.net> | 2018-01-26 17:45:20 +0100 |
commit | bd5b9e50ce10e75048c3f584b2c7784d31504f0c (patch) | |
tree | 4f7e01c14d217f69de30b58c7a3212c396bd5a20 /tests/libtest/lib555.c | |
parent | a6b611f0d01aff9d0d0d411928c9103c8036af75 (diff) | |
download | curl-bd5b9e50ce10e75048c3f584b2c7784d31504f0c.tar.gz |
lib555: drop text conversion and encode data as ascii codes
If CURL_DOES_CONVERSION is enabled, uploaded LFs are mapped to CRLFs,
giving a result that is different from what is expected.
This commit avoids using CURLOPT_TRANSFERTEXT and directly encodes data
to upload in ascii.
Bug: https://github.com/curl/curl/pull/1872
Diffstat (limited to 'tests/libtest/lib555.c')
-rw-r--r-- | tests/libtest/lib555.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/tests/libtest/lib555.c b/tests/libtest/lib555.c index fc71bb643..c887b56f0 100644 --- a/tests/libtest/lib555.c +++ b/tests/libtest/lib555.c @@ -5,7 +5,7 @@ * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * - * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al. + * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms @@ -35,7 +35,15 @@ #define TEST_HANG_TIMEOUT 60 * 1000 -#define UPLOADTHIS "this is the blurb we want to upload\n" +static const char uploadthis[] = +#ifdef CURL_DOES_CONVERSIONS + /* ASCII representation with escape sequences for non-ASCII platforms */ + "\x74\x68\x69\x73\x20\x69\x73\x20\x74\x68\x65\x20\x62\x6c\x75\x72" + "\x62\x20\x77\x65\x20\x77\x61\x6e\x74\x20\x74\x6f\x20\x75\x70\x6c" + "\x6f\x61\x64\x0a"; +#else + "this is the blurb we want to upload\n"; +#endif static size_t readcallback(void *ptr, size_t size, @@ -51,10 +59,10 @@ static size_t readcallback(void *ptr, } (*counter)++; /* bump */ - if(size * nmemb > strlen(UPLOADTHIS)) { + if(size * nmemb > strlen(uploadthis)) { fprintf(stderr, "READ!\n"); - strcpy(ptr, UPLOADTHIS); - return strlen(UPLOADTHIS); + strcpy(ptr, uploadthis); + return strlen(uploadthis); } fprintf(stderr, "READ NOT FINE!\n"); return 0; @@ -98,13 +106,9 @@ int test(char *URL) easy_setopt(curl, CURLOPT_READDATA, &counter); /* We CANNOT do the POST fine without setting the size (or choose chunked)! */ - easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(UPLOADTHIS)); + easy_setopt(curl, CURLOPT_POSTFIELDSIZE, (long)strlen(uploadthis)); easy_setopt(curl, CURLOPT_POST, 1L); -#ifdef CURL_DOES_CONVERSIONS - /* Convert the POST data to ASCII. */ - easy_setopt(curl, CURLOPT_TRANSFERTEXT, 1L); -#endif easy_setopt(curl, CURLOPT_PROXY, libtest_arg2); easy_setopt(curl, CURLOPT_PROXYUSERPWD, libtest_arg3); easy_setopt(curl, CURLOPT_PROXYAUTH, |