diff options
-rw-r--r-- | src/testcurl/Makefile.am | 3 | ||||
-rw-r--r-- | src/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 index 930bedd3..c9a9473f 100644 --- a/src/testcurl/Makefile.am +++ b/src/testcurl/Makefile.am | |||
@@ -140,6 +140,7 @@ check_PROGRAMS = \ | |||
140 | test_get_header_fold \ | 140 | test_get_header_fold \ |
141 | test_put_header_fold \ | 141 | test_put_header_fold \ |
142 | test_put_large_header_fold \ | 142 | test_put_large_header_fold \ |
143 | test_put_header_fold_last \ | ||
143 | $(EMPTY_ITEM) | 144 | $(EMPTY_ITEM) |
144 | 145 | ||
145 | if ENABLE_COOKIE | 146 | if ENABLE_COOKIE |
@@ -639,3 +640,5 @@ test_put_header_fold_SOURCES = \ | |||
639 | test_put_large_header_fold_SOURCES = $(test_put_header_fold_SOURCES) | 640 | test_put_large_header_fold_SOURCES = $(test_put_header_fold_SOURCES) |
640 | 641 | ||
641 | test_get_header_fold_SOURCES = $(test_put_header_fold_SOURCES) | 642 | test_get_header_fold_SOURCES = $(test_put_header_fold_SOURCES) |
643 | |||
644 | 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 index f01b6762..c9a1d46d 100644 --- 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) | |||
233 | #define RP_HEADER2 RP_HEADER2_NAME ": " RP_HEADER2_VALUE | 233 | #define RP_HEADER2 RP_HEADER2_NAME ": " RP_HEADER2_VALUE |
234 | #define RP_HEADER2_CRLF RP_HEADER2 "\r\n" | 234 | #define RP_HEADER2_CRLF RP_HEADER2 "\r\n" |
235 | 235 | ||
236 | #define HDR_FOLD "\r\n " | ||
236 | #define RQ_HEADER1_NAME RP_HEADER1_NAME | 237 | #define RQ_HEADER1_NAME RP_HEADER1_NAME |
237 | #define RQ_HEADER1_VALUE RP_HEADER1_VALUE | 238 | #define RQ_HEADER1_VALUE RP_HEADER1_VALUE |
238 | #define RQ_HEADER1 RQ_HEADER1_NAME ": " RQ_HEADER1_VALUE | 239 | #define RQ_HEADER1 RQ_HEADER1_NAME ": " RQ_HEADER1_VALUE |
239 | #define RQ_HEADER2_NAME "Folded" | 240 | #define RQ_HEADER2_NAME "Folded" |
240 | #define RQ_HEADER2_VALUE_S "start" | 241 | #define RQ_HEADER2_VALUE_S "start" |
241 | #define RQ_HEADER2_VALUE_E "end" | 242 | #define RQ_HEADER2_VALUE_E "end" |
242 | #define RQ_HEADER2_VALUE RQ_HEADER2_VALUE_S "\r\n \r\n " RQ_HEADER2_VALUE_E | 243 | #define RQ_HEADER2_VALUE RQ_HEADER2_VALUE_S HDR_FOLD HDR_FOLD RQ_HEADER2_VALUE_E |
243 | #define RQ_HEADER2 RQ_HEADER2_NAME ": " RQ_HEADER2_VALUE | 244 | #define RQ_HEADER2 RQ_HEADER2_NAME ": " RQ_HEADER2_VALUE |
244 | #define RQ_HEADER3_NAME RP_HEADER2_NAME | 245 | #define RQ_HEADER3_NAME RP_HEADER2_NAME |
245 | #define RQ_HEADER3_VALUE RP_HEADER2_VALUE | 246 | #define RQ_HEADER3_VALUE RP_HEADER2_VALUE |
@@ -266,6 +267,7 @@ static int oneone; /**< If false use HTTP/1.0 for requests*/ | |||
266 | static int use_get; | 267 | static int use_get; |
267 | static int use_put; | 268 | static int use_put; |
268 | static int use_put_large; | 269 | static int use_put_large; |
270 | static int use_hdr_last; /**< If non-zero, folded header is placed last */ | ||
269 | 271 | ||
270 | /* Static data */ | 272 | /* Static data */ |
271 | static struct curl_slist *libcurl_headers = NULL; | 273 | static struct curl_slist *libcurl_headers = NULL; |
@@ -285,13 +287,23 @@ libcurl_headers_init (void) | |||
285 | if (NULL == libcurl_headers) | 287 | if (NULL == libcurl_headers) |
286 | libcurlErrorExitDesc ("curl_slist_append() failed"); | 288 | libcurlErrorExitDesc ("curl_slist_append() failed"); |
287 | 289 | ||
290 | if (use_hdr_last) | ||
291 | { | ||
292 | libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); | ||
293 | if (NULL == libcurl_headers) | ||
294 | libcurlErrorExitDesc ("curl_slist_append() failed"); | ||
295 | } | ||
296 | |||
288 | libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2); | 297 | libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER2); |
289 | if (NULL == libcurl_headers) | 298 | if (NULL == libcurl_headers) |
290 | libcurlErrorExitDesc ("curl_slist_append() failed"); | 299 | libcurlErrorExitDesc ("curl_slist_append() failed"); |
291 | 300 | ||
292 | libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); | 301 | if (! use_hdr_last) |
293 | if (NULL == libcurl_headers) | 302 | { |
294 | libcurlErrorExitDesc ("curl_slist_append() failed"); | 303 | libcurl_headers = curl_slist_append (libcurl_headers, RQ_HEADER3); |
304 | if (NULL == libcurl_headers) | ||
305 | libcurlErrorExitDesc ("curl_slist_append() failed"); | ||
306 | } | ||
295 | } | 307 | } |
296 | 308 | ||
297 | 309 | ||
@@ -1064,7 +1076,8 @@ performCheck (void) | |||
1064 | port += UINT16_C (2); | 1076 | port += UINT16_C (2); |
1065 | if (use_put_large) | 1077 | if (use_put_large) |
1066 | port += UINT16_C (4); | 1078 | port += UINT16_C (4); |
1067 | port = (uint16_t) 4220; | 1079 | if (use_hdr_last) |
1080 | port += UINT16_C (8); | ||
1068 | } | 1081 | } |
1069 | 1082 | ||
1070 | if (1) | 1083 | if (1) |
@@ -1212,6 +1225,7 @@ main (int argc, char *const *argv) | |||
1212 | use_put = has_in_name (argv[0], "_put"); | 1225 | use_put = has_in_name (argv[0], "_put"); |
1213 | 1226 | ||
1214 | use_put_large = has_in_name (argv[0], "_put_large"); | 1227 | use_put_large = has_in_name (argv[0], "_put_large"); |
1228 | use_hdr_last = has_in_name (argv[0], "_last"); | ||
1215 | 1229 | ||
1216 | if (1 != | 1230 | if (1 != |
1217 | ((use_get ? 1 : 0) + (use_put ? 1 : 0))) | 1231 | ((use_get ? 1 : 0) + (use_put ? 1 : 0))) |