summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java')
-rw-r--r--src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java b/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java
index 5d7f563..02ecc44 100644
--- a/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java
+++ b/src/main/java/com/btr/proxy/selector/misc/ProtocolDispatchSelector.java
@@ -104,11 +104,18 @@ public class ProtocolDispatchSelector extends ProxySelector {
@Override
public List<Proxy> select(URI uri) {
- ProxySelector selector = this.fallbackSelector;
+ ProxySelector selector = null;
String protocol = uri.getScheme();
if (protocol != null && this.selectors.get(protocol) != null) {
selector = this.selectors.get(protocol);
}
+ if (selector == null && this.selectors.get("socks") != null) {
+ // Socks should always work
+ selector = this.selectors.get("socks");
+ }
+ if (selector == null) {
+ selector = this.fallbackSelector;
+ }
return selector.select(uri);
}