diff options
Diffstat (limited to 'modules/proxy.py')
| -rw-r--r-- | modules/proxy.py | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/modules/proxy.py b/modules/proxy.py deleted file mode 100644 index 1bcaebd1..00000000 --- a/modules/proxy.py +++ /dev/null @@ -1,38 +0,0 @@ -import typing, urllib.parse -import socks -from src import ModuleManager, utils - -TYPES = { - "socks4": socks.SOCKS4, - "socks5": socks.SOCKS5, - "http": socks.HTTP -} - -def _parse(value): - parsed = urllib.parse.urlparse(value) - if parsed.scheme in TYPES and parsed.hostname: - return value - -@utils.export("serverset", utils.FunctionSetting(_parse, "proxy", - "Proxy configuration for the current server", - example="socks5://localhost:9050")) -class Module(ModuleManager.BaseModule): - @utils.hook("preprocess.connect") - def new_server(self, event): - proxy = event["server"].get_setting("proxy", None) - if proxy: - proxy_parsed = urllib.parse.urlparse(proxy) - type = TYPES.get(proxy_parsed.scheme) - - if type == None: - raise ValueError("Invalid proxy type '%s' for '%s'" % - (proxy_parsed.scheme, str(event["server"]))) - - event["server"].socket._make_socket = self._socket_factory( - type, proxy_parsed.hostname, proxy_parsed.port) - - def _socket_factory(self, ptype, phost, pport): - def _(host, port, bind, timeout): - return socks.create_connection((host, port), timeout, bind, - ptype, phost, pport) - return _ |
