libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 04ad057ab93959a7d437709eb59dfa5ca950a293
parent 6878cd91443b2f1dab6fcbb9163a628d1c53ac88
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date:   Mon,  7 Nov 2022 13:56:11 +0300

Added test with folded header placed last

Diffstat:
Msrc/testcurl/Makefile.am | 3+++
Msrc/testcurl/test_put_header_fold.c | 24+++++++++++++++++++-----
2 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/testcurl/Makefile.am b/src/testcurl/Makefile.am @@ -140,6 +140,7 @@ check_PROGRAMS = \ test_get_header_fold \ test_put_header_fold \ test_put_large_header_fold \ + test_put_header_fold_last \ $(EMPTY_ITEM) if ENABLE_COOKIE @@ -639,3 +640,5 @@ test_put_header_fold_SOURCES = \ test_put_large_header_fold_SOURCES = $(test_put_header_fold_SOURCES) test_get_header_fold_SOURCES = $(test_put_header_fold_SOURCES) + +test_put_header_fold_last_SOURCES = $(test_put_header_fold_SOURCES) diff --git a/src/testcurl/test_put_header_fold.c b/src/testcurl/test_put_header_fold.c @@ -233,13 +233,14 @@ _mhdErrorExit_func (const char *errDesc, const char *funcName, int lineNum) #define RP_HEADER2 RP_HEADER2_NAME ": " RP_HEADER2_VALUE #define RP_HEADER2_CRLF RP_HEADER2 "\r\n" +#define HDR_FOLD "\r\n " #define RQ_HEADER1_NAME RP_HEADER1_NAME #define RQ_HEADER1_VALUE RP_HEADER1_VALUE #define RQ_HEADER1 RQ_HEADER1_NAME ": " RQ_HEADER1_VALUE #define RQ_HEADER2_NAME "Folded" #define RQ_HEADER2_VALUE_S "start" #define RQ_HEADER2_VALUE_E "end" -#define RQ_HEADER2_VALUE RQ_HEADER2_VALUE_S "\r\n \r\n " RQ_HEADER2_VALUE_E +#define RQ_HEADER2_VALUE RQ_HEADER2_VALUE_S HDR_FOLD HDR_FOLD RQ_HEADER2_VALUE_E #define RQ_HEADER2 RQ_HEADER2_NAME ": " RQ_HEADER2_VALUE #define RQ_HEADER3_NAME RP_HEADER2_NAME #define RQ_HEADER3_VALUE RP_HEADER2_VALUE @@ -266,6 +267,7 @@ static int oneone; /**< If false use HTTP/1.0 for requests*/ static int use_get; static int use_put; static int use_put_large; +static int use_hdr_last; /**< If non-zero, folded header is placed last */ /* Static data */ static struct curl_slist *libcurl_headers = NULL; @@ -285,13 +287,23 @@ libcurl_headers_init (void) if (NULL == libcurl_headers) libcurlErrorExitDesc ("curl_slist_append() failed"); + if (use_hdr_last) + { + libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); + if (NULL == libcurl_headers) + libcurlErrorExitDesc ("curl_slist_append() failed"); + } + libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2); if (NULL == libcurl_headers) libcurlErrorExitDesc ("curl_slist_append() failed"); - libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); - if (NULL == libcurl_headers) - libcurlErrorExitDesc ("curl_slist_append() failed"); + if (! use_hdr_last) + { + libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); + if (NULL == libcurl_headers) + libcurlErrorExitDesc ("curl_slist_append() failed"); + } } @@ -1064,7 +1076,8 @@ performCheck (void) port += UINT16_C (2); if (use_put_large) port += UINT16_C (4); - port = (uint16_t) 4220; + if (use_hdr_last) + port += UINT16_C (8); } if (1) @@ -1212,6 +1225,7 @@ main (int argc, char *const *argv) use_put = has_in_name (argv[0], "_put"); use_put_large = has_in_name (argv[0], "_put_large"); + use_hdr_last = has_in_name (argv[0], "_last"); if (1 != ((use_get ? 1 : 0) + (use_put ? 1 : 0)))