diff --git a/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java index 562efdf42..4bcdcfb3a 100644 --- a/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java +++ b/catvod/src/main/java/com/github/catvod/net/OkProxySelector.java @@ -30,15 +30,19 @@ public class OkProxySelector extends ProxySelector { proxy.clear(); } + private List fallback(URI uri) { + return system != null ? system.select(uri) : List.of(java.net.Proxy.NO_PROXY); + } + @Override public List select(URI uri) { - if (proxy.isEmpty() || uri.getHost() == null || "127.0.0.1".equals(uri.getHost())) return system.select(uri); - for (Proxy item : proxy) for (String host : item.getHosts()) if (Util.containOrMatch(uri.getHost(), host)) return item.getProxies().isEmpty() ? system.select(uri) : item.getProxies(); - return system.select(uri); + if (proxy.isEmpty() || uri.getHost() == null || "127.0.0.1".equals(uri.getHost())) return fallback(uri); + for (Proxy item : proxy) for (String host : item.getHosts()) if (Util.containOrMatch(uri.getHost(), host)) return !item.getProxies().isEmpty() ? item.getProxies() : fallback(uri); + return fallback(uri); } @Override public void connectFailed(URI uri, SocketAddress socketAddress, IOException e) { - system.connectFailed(uri, socketAddress, e); + if (system != null) system.connectFailed(uri, socketAddress, e); } }