diff options
Diffstat (limited to 'crates/shirabe/src/util/remote_filesystem.rs')
| -rw-r--r-- | crates/shirabe/src/util/remote_filesystem.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/crates/shirabe/src/util/remote_filesystem.rs b/crates/shirabe/src/util/remote_filesystem.rs index 2e77fe8..8d50fa4 100644 --- a/crates/shirabe/src/util/remote_filesystem.rs +++ b/crates/shirabe/src/util/remote_filesystem.rs @@ -16,6 +16,7 @@ use crate::config::Config; use crate::downloader::MaxFileSizeExceededException; use crate::downloader::TransportException; use crate::io::IOInterface; +use crate::io::IOInterfaceImmutable; use crate::util::AuthHelper; use crate::util::HttpDownloader; use crate::util::Platform; @@ -34,7 +35,7 @@ pub enum GetResult { #[derive(Debug)] pub struct RemoteFilesystem { - io: Box<dyn IOInterface>, + io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>, config: std::rc::Rc<std::cell::RefCell<Config>>, scheme: String, bytes_max: i64, @@ -56,7 +57,7 @@ pub struct RemoteFilesystem { impl RemoteFilesystem { pub fn new( - io: Box<dyn IOInterface>, + io: std::rc::Rc<std::cell::RefCell<dyn IOInterface>>, config: std::rc::Rc<std::cell::RefCell<Config>>, options: IndexMap<String, PhpMixed>, disable_tls: bool, @@ -64,8 +65,7 @@ impl RemoteFilesystem { ) -> Self { let (computed_options, disable_tls_set) = if !disable_tls { ( - // TODO(phase-b): logger is None placeholder; should pass `&*io` if a Logger view is available. - StreamContextFactory::get_tls_defaults(&options, None) + StreamContextFactory::get_tls_defaults(&options, ()) .unwrap_or_else(|_| IndexMap::new()), false, ) @@ -75,7 +75,7 @@ impl RemoteFilesystem { let merged = array_replace_recursive(computed_options, options); let auth_helper = - auth_helper.unwrap_or_else(|| AuthHelper::new(io.clone_box(), config.clone())); + auth_helper.unwrap_or_else(|| AuthHelper::new(io.clone(), config.clone())); Self { io, config, @@ -292,7 +292,7 @@ impl RemoteFilesystem { { let _ = self.config.borrow_mut().prohibit_url_by_config( &file_url, - Some(&*self.io), + Some(&*self.io.borrow()), &indexmap::IndexMap::new(), ); } @@ -337,7 +337,7 @@ impl RemoteFilesystem { PhpMixed::Array(m) => m.into_iter().map(|(k, v)| (k, *v)).collect(), _ => IndexMap::new(), }; - let _ = HttpDownloader::output_warnings(&*self.io, origin_url, &parsed_map); + let _ = HttpDownloader::output_warnings(&*self.io.borrow(), origin_url, &parsed_map); } if [401_i64, 403].contains(&code) && retry_auth_failure { |
