setopt: return CURLE_BAD_FUNCTION_ARGUMENT on bad argument

Fixed two return code mixups. CURLE_UNKNOWN_OPTION is saved for when the
option is, yeah, not known. Clarified this in the setopt man page too.

Closes #5993
This commit is contained in:
Daniel Stenberg 2020-09-21 23:27:21 +02:00
parent f4873ebd0b
commit a8e08a87df
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
2 changed files with 12 additions and 17 deletions

View file

@ -430,7 +430,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
primary->version_max = version_max;
}
#else
result = CURLE_UNKNOWN_OPTION;
result = CURLE_NOT_BUILT_IN;
#endif
break;
@ -1077,7 +1077,7 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
break;
default:
/* reserve other values for future use */
result = CURLE_UNKNOWN_OPTION;
result = CURLE_BAD_FUNCTION_ARGUMENT;
break;
}
break;
@ -1230,21 +1230,13 @@ CURLcode Curl_vsetopt(struct Curl_easy *data, CURLoption option, va_list param)
* An FTP/SFTP option that modifies an upload to create missing
* directories on the server.
*/
switch(va_arg(param, long)) {
case 0:
data->set.ftp_create_missing_dirs = 0;
break;
case 1:
data->set.ftp_create_missing_dirs = 1;
break;
case 2:
data->set.ftp_create_missing_dirs = 2;
break;
default:
/* reserve other values for future use */
result = CURLE_UNKNOWN_OPTION;
break;
}
arg = va_arg(param, long);
/* reserve other values for future use */
if((arg < CURLFTP_CREATE_DIR_NONE) ||
(arg > CURLFTP_CREATE_DIR_RETRY))
result = CURLE_BAD_FUNCTION_ARGUMENT;
else
data->set.ftp_create_missing_dirs = (int)arg;
break;
case CURLOPT_READDATA:
/*