From 0f407712233b570462c56055b55bfe34dd33bef1 Mon Sep 17 00:00:00 2001 From: Igor Date: Wed, 18 Feb 2026 10:28:43 +0300 Subject: [PATCH] Fix ME proxy config parser to support IPv6 addresses The getProxyConfigV6 endpoint returns addresses in [ipv6]:port format, but the regex only matched IPv4 host:port, causing IPv6 ME map to be empty. Co-Authored-By: Claude Opus 4.6 --- src/transport/middle_proxy/config_updater.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/transport/middle_proxy/config_updater.rs b/src/transport/middle_proxy/config_updater.rs index 8ac6986..4a03729 100644 --- a/src/transport/middle_proxy/config_updater.rs +++ b/src/transport/middle_proxy/config_updater.rs @@ -48,7 +48,8 @@ pub async fn fetch_proxy_config(url: &str) -> Result { .await .map_err(|e| crate::error::ProxyError::Proxy(format!("fetch_proxy_config read failed: {e}")))?; - let re_proxy = Regex::new(r"proxy_for\s+(-?\d+)\s+([^\s:]+):(\d+)\s*;").unwrap(); + // Matches both IPv4 `host:port` and IPv6 `[host]:port` formats + let re_proxy = Regex::new(r"proxy_for\s+(-?\d+)\s+\[?([^\]\s]+)\]?:(\d+)\s*;").unwrap(); let re_default = Regex::new(r"default\s+(-?\d+)\s*;").unwrap(); let mut map: HashMap> = HashMap::new();