diff options
author | Bert Belder <bertbelder@gmail.com> | 2021-10-04 18:50:40 -0700 |
---|---|---|
committer | Bert Belder <bertbelder@gmail.com> | 2021-11-10 14:51:43 -0800 |
commit | 72a6231a614e71a57c4f8ce5f9de68ab97171dd1 (patch) | |
tree | b19bbd749ad67f606ef331fee00bfe2b34477633 /runtime/errors.rs | |
parent | 0cc8a9741a16efe3e37167731238b33d26887fd0 (diff) |
refactor(ext/http): rewrite hyper integration and fix bug (#12732)
Fixes: #12193
Fixes: #12251
Closes: #12714
Diffstat (limited to 'runtime/errors.rs')
-rw-r--r-- | runtime/errors.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/runtime/errors.rs b/runtime/errors.rs index fe6e71193..1491161d3 100644 --- a/runtime/errors.rs +++ b/runtime/errors.rs @@ -17,6 +17,7 @@ use deno_fetch::reqwest; use std::env; use std::error::Error; use std::io; +use std::sync::Arc; fn get_dlopen_error_class(error: &dlopen::Error) -> &'static str { use dlopen::Error::*; @@ -164,6 +165,10 @@ pub fn get_error_class_name(e: &AnyError) -> Option<&'static str> { }) .or_else(|| e.downcast_ref::<hyper::Error>().map(get_hyper_error_class)) .or_else(|| { + e.downcast_ref::<Arc<hyper::Error>>() + .map(|e| get_hyper_error_class(&**e)) + }) + .or_else(|| { e.downcast_ref::<deno_core::Canceled>().map(|e| { let io_err: io::Error = e.to_owned().into(); get_io_error_class(&io_err) |