diff options
-rw-r--r-- | src/tool_operate.c | 27 | ||||
-rw-r--r-- | tests/data/Makefile.inc | 2 | ||||
-rw-r--r-- | tests/data/test426 | 34 |
3 files changed, 54 insertions, 9 deletions
diff --git a/src/tool_operate.c b/src/tool_operate.c index 06ae39396..4da9dea16 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -1398,19 +1398,30 @@ static CURLcode single_transfer(struct GlobalConfig *global, switch(config->httpreq) { case HTTPREQ_SIMPLEPOST: - my_setopt_str(curl, CURLOPT_POSTFIELDS, - config->postfields); - my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, - config->postfieldsize); + if(config->resume_from) { + errorf(global, "cannot mix --continue-at with --data\n"); + result = CURLE_FAILED_INIT; + } + else { + my_setopt_str(curl, CURLOPT_POSTFIELDS, + config->postfields); + my_setopt(curl, CURLOPT_POSTFIELDSIZE_LARGE, + config->postfieldsize); + } break; case HTTPREQ_MIMEPOST: /* free previous remainders */ curl_mime_free(config->mimepost); config->mimepost = NULL; - result = tool2curlmime(curl, config->mimeroot, &config->mimepost); - if(result) - break; - my_setopt_mimepost(curl, CURLOPT_MIMEPOST, config->mimepost); + if(config->resume_from) { + errorf(global, "cannot mix --continue-at with --form\n"); + result = CURLE_FAILED_INIT; + } + else { + result = tool2curlmime(curl, config->mimeroot, &config->mimepost); + if(!result) + my_setopt_mimepost(curl, CURLOPT_MIMEPOST, config->mimepost); + } break; default: break; diff --git a/tests/data/Makefile.inc b/tests/data/Makefile.inc index 8baf721b7..c2d9cb2a2 100644 --- a/tests/data/Makefile.inc +++ b/tests/data/Makefile.inc @@ -69,7 +69,7 @@ test390 test391 test392 test393 test394 test395 test396 test397 test398 \ test399 test400 test401 test402 test403 test404 test405 test406 test407 \ test408 test409 test410 test411 test412 test413 test414 test415 test416 \ test417 test418 test419 test420 test421 test422 test423 test424 test425 \ -\ +test426 \ test430 test431 test432 test433 test434 test435 test436 \ \ test440 test441 test442 test443 test444 test445 test446 \ diff --git a/tests/data/test426 b/tests/data/test426 new file mode 100644 index 000000000..34c80c6aa --- /dev/null +++ b/tests/data/test426 @@ -0,0 +1,34 @@ +<testcase> +<info> +<keywords> +error detection +</keywords> +</info> + +# +# Server-side +<reply> +</reply> + +# +# Client-side +<client> +<server> +http +</server> +<name> +try --data with --continue-at +</name> +<command> +http://%HOSTIP:%HTTPPORT/%TESTNUMBER -d foobar -C 3 +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<errorcode> +2 +</errorcode> +</verify> +</testcase> |