when setting aws_sigv4, explicitly check for and report "unknown option" from libcurl

This commit is contained in:
apparentorder 2023-08-23 20:10:30 +02:00
parent c1063f8d19
commit 78a45f1f33
No known key found for this signature in database

View File

@ -139,9 +139,6 @@ impl Client {
}
self.handle.ssl_verify_host(!options.insecure)?;
self.handle.ssl_verify_peer(!options.insecure)?;
if let Some(aws_sigv4) = options.aws_sigv4.clone() {
self.handle.aws_sigv4(aws_sigv4.as_str())?;
}
if let Some(cacert_file) = options.cacert_file.clone() {
self.handle.cainfo(cacert_file)?;
self.handle.ssl_cert_type("PEM")?;
@ -177,6 +174,19 @@ impl Client {
self.set_body(request_spec_body)?;
self.set_headers(request_spec, options)?;
if let Some(aws_sigv4) = options.aws_sigv4.clone() {
if let Err(e) = self.handle.aws_sigv4(aws_sigv4.as_str()) {
return match e.code() {
curl_sys::CURLE_UNKNOWN_OPTION => Err(HttpError::LibcurlUnknownOption {
option: "aws-sigv4".to_string(),
minimum_version: "7.75.0".to_string(),
url: url
}),
_ => Err(e.into()),
}
}
}
let start = Utc::now();
let verbose = options.verbosity.is_some();
let very_verbose = options.verbosity == Some(Verbosity::VeryVerbose);