aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/shirabe/src/util/http/proxy_manager.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/shirabe/src/util/http/proxy_manager.rs')
-rw-r--r--crates/shirabe/src/util/http/proxy_manager.rs8
1 files changed, 4 insertions, 4 deletions
diff --git a/crates/shirabe/src/util/http/proxy_manager.rs b/crates/shirabe/src/util/http/proxy_manager.rs
index 2576dcb..13a9920 100644
--- a/crates/shirabe/src/util/http/proxy_manager.rs
+++ b/crates/shirabe/src/util/http/proxy_manager.rs
@@ -14,7 +14,7 @@ pub struct ProxyManager {
error: Option<String>,
http_proxy: Option<ProxyItem>,
https_proxy: Option<ProxyItem>,
- no_proxy_handler: Option<NoProxyPattern>,
+ no_proxy_handler: std::cell::RefCell<Option<NoProxyPattern>>,
}
impl ProxyManager {
@@ -23,7 +23,7 @@ impl ProxyManager {
error: None,
http_proxy: None,
https_proxy: None,
- no_proxy_handler: None,
+ no_proxy_handler: std::cell::RefCell::new(None),
};
if let Err(e) = instance.get_proxy_data() {
instance.error = Some(e.to_string());
@@ -102,7 +102,7 @@ impl ProxyManager {
let (env, _name) = Self::get_proxy_env("no_proxy");
if let Some(env) = env {
- self.no_proxy_handler = Some(NoProxyPattern::new(&env));
+ *self.no_proxy_handler.borrow_mut() = Some(NoProxyPattern::new(&env));
}
Ok(())
@@ -120,7 +120,7 @@ impl ProxyManager {
}
fn no_proxy(&self, request_url: &str) -> bool {
- match &self.no_proxy_handler {
+ match self.no_proxy_handler.borrow_mut().as_mut() {
None => false,
Some(handler) => handler.test(request_url).unwrap_or(false),
}