aboutsummaryrefslogtreecommitdiff
path: root/modules/proxy.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-12-10 05:27:35 +0000
committerGravatar jesopo2019-12-10 05:27:35 +0000
commit638eee0d685c06d258cb55287204ca97bca7c344 (patch)
tree33442439317ae2846f1efb7674b7a3758c8990a1 /modules/proxy.py
parentmove sys.exit() codes to an enum in utils.consts (diff)
signature
move core modules to src/core_modules, make them uneffected by white/black list
Diffstat (limited to 'modules/proxy.py')
-rw-r--r--modules/proxy.py38
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 _