Browse Source

TorDetector: minor clean-up

master
SomberNight 7 years ago
parent
commit
e7304ce23e
No known key found for this signature in database
GPG Key ID: B33B5F232C6271E9
  1. 12
      electrum/gui/qt/network_dialog.py

12
electrum/gui/qt/network_dialog.py

@ -26,6 +26,7 @@
import socket import socket
import time import time
from enum import IntEnum from enum import IntEnum
from typing import Tuple
from PyQt5.QtCore import Qt, pyqtSignal, QThread from PyQt5.QtCore import Qt, pyqtSignal, QThread
from PyQt5.QtWidgets import (QTreeWidget, QTreeWidgetItem, QMenu, QGridLayout, QComboBox, from PyQt5.QtWidgets import (QTreeWidget, QTreeWidgetItem, QMenu, QGridLayout, QComboBox,
@ -521,19 +522,20 @@ class TorDetector(QThread):
ports = [9050, 9150] ports = [9050, 9150]
while True: while True:
for p in ports: for p in ports:
if TorDetector.is_tor_port(p): net_addr = ("127.0.0.1", p)
self.found_proxy.emit(("127.0.0.1", p)) if TorDetector.is_tor_port(net_addr):
self.found_proxy.emit(net_addr)
break break
else: else:
self.found_proxy.emit(None) self.found_proxy.emit(None)
time.sleep(10) time.sleep(10)
@staticmethod @staticmethod
def is_tor_port(port): def is_tor_port(net_addr: Tuple[str, int]) -> bool:
try: try:
s = (socket._socketobject if hasattr(socket, "_socketobject") else socket.socket)(socket.AF_INET, socket.SOCK_STREAM) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(0.1) s.settimeout(0.1)
s.connect(("127.0.0.1", port)) s.connect(net_addr)
# Tor responds uniquely to HTTP-like requests # Tor responds uniquely to HTTP-like requests
s.send(b"GET\n") s.send(b"GET\n")
if b"Tor is not an HTTP Proxy" in s.recv(1024): if b"Tor is not an HTTP Proxy" in s.recv(1024):

Loading…
Cancel
Save