From 516600a32d1e9272b980403f2519e7d7738ab56f Mon Sep 17 00:00:00 2001 From: pasha-zzz Date: Fri, 20 Sep 2019 13:28:29 +0300 Subject: [PATCH] Add support for upstream SOCKS5 proxy (#143) --- config.py | 4 ++++ mtprotoproxy.py | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/config.py b/config.py index 81255af..1693eeb 100644 --- a/config.py +++ b/config.py @@ -20,3 +20,7 @@ SECURE_ONLY = True # Tag for advertising, obtainable from @MTProxybot # AD_TAG = "3c09c680b76ee91a4c25ad51f742267d" + +# Use upstream SOCKS5 proxy for connections (f.e. Tor) +# SOCKS5_HOST = "localhost" +# SOCKS5_PORT = 9050 diff --git a/mtprotoproxy.py b/mtprotoproxy.py index 5df0ebb..c323291 100755 --- a/mtprotoproxy.py +++ b/mtprotoproxy.py @@ -4,6 +4,7 @@ import asyncio import socket import urllib.parse import urllib.request +import socks import collections import time import datetime @@ -120,6 +121,10 @@ def init_config(): # load advanced settings + # use upstream SOCKS5 proxy + conf_dict.setdefault("SOCKS5_HOST", "localhost") + conf_dict.setdefault("SOCKS5_PORT", 0) + # use middle proxy, necessary to show ad conf_dict.setdefault("USE_MIDDLE_PROXY", len(conf_dict["AD_TAG"]) == 16) @@ -1869,6 +1874,10 @@ def init_ip_info(): global my_ip_info global disable_middle_proxy + if not config.SOCKS5_PORT == 0: + socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, config.SOCKS5_HOST, config.SOCKS5_PORT) + socket.socket = socks.socksocket + def get_ip_from_url(url): TIMEOUT = 5 try: