From b0305a6645138e12307c0cfb86461c6705b31664 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Sun, 7 Jun 2015 06:22:16 -0300 Subject: smtp with better variable naming and random port --- service/pixelated/bitmask_libraries/smtp.py | 34 ++++++++++++++--------------- 1 file changed, 17 insertions(+), 17 deletions(-) (limited to 'service/pixelated/bitmask_libraries/smtp.py') diff --git a/service/pixelated/bitmask_libraries/smtp.py b/service/pixelated/bitmask_libraries/smtp.py index a0f9c6e4..c22601d2 100644 --- a/service/pixelated/bitmask_libraries/smtp.py +++ b/service/pixelated/bitmask_libraries/smtp.py @@ -16,6 +16,7 @@ import logging import os import requests +import random from .certs import which_api_CA_bundle from leap.mail.smtp import setup_smtp_gateway @@ -25,21 +26,20 @@ logger = logging.getLogger(__name__) class LeapSmtp(object): - TWISTED_PORT = 4650 - def __init__(self, provider, username, session_id, keymanager=None): + self.local_smtp_port_number = random.randrange(12000, 16000) self._provider = provider self.username = username self.session_id = session_id self._keymanager = keymanager - self._hostname, self._port = self._discover_smtp_server() - self._smtp_port = None - self._smtp_service = None + self._remote_hostname, self._remote_port = self._discover_remote_smtp_server() + self._local_smtp_service_socket = None + self._local_smtp_service = None def smtp_info(self): - return ('localhost', self.TWISTED_PORT) + return ('localhost', self.local_smtp_port_number) - def _discover_smtp_server(self): + def _discover_remote_smtp_server(self): json_data = self._provider.fetch_smtp_json() hosts = json_data['hosts'] hostname = hosts.keys()[0] @@ -79,19 +79,19 @@ class LeapSmtp(object): cert_path = self._client_cert_path() email = '%s@%s' % (self.username, self._provider.domain) - self._smtp_service, self._smtp_port = setup_smtp_gateway( - port=self.TWISTED_PORT, + self._local_smtp_service, self._local_smtp_service_socket = setup_smtp_gateway( + port=self.local_smtp_port_number, userid=email, keymanager=self._keymanager, - smtp_host=self._hostname.encode('UTF-8'), - smtp_port=self._port, + smtp_host=self._remote_hostname.encode('UTF-8'), + smtp_port=self._remote_port, smtp_cert=cert_path, smtp_key=cert_path, encrypted_only=False ) def ensure_running(self): - if not self._smtp_service: + if not self._local_smtp_service: try: self.start() except: @@ -100,8 +100,8 @@ class LeapSmtp(object): return True def stop(self): - if self._smtp_service is not None: - self._smtp_port.stopListening() - self._smtp_service.doStop() - self._smtp_port = None - self._smtp_service = None + if self._local_smtp_service is not None: + self._local_smtp_service_socket.stopListening() + self._local_smtp_service.doStop() + self._local_smtp_service_socket = None + self._local_smtp_service = None -- cgit v1.2.3