summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries/smtp.py
diff options
context:
space:
mode:
authorVictor Shyba <victor.shyba@gmail.com>2015-06-07 06:22:16 -0300
committerVictor Shyba <victor.shyba@gmail.com>2015-06-07 06:22:16 -0300
commitb0305a6645138e12307c0cfb86461c6705b31664 (patch)
treec7b40e0ba7098466282a341e506dbeb5ffc6e4cd /service/pixelated/bitmask_libraries/smtp.py
parentba6068175133eb08dd15877315d4d3361d35bdbc (diff)
smtp with better variable naming and random port
Diffstat (limited to 'service/pixelated/bitmask_libraries/smtp.py')
-rw-r--r--service/pixelated/bitmask_libraries/smtp.py34
1 files changed, 17 insertions, 17 deletions
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