summaryrefslogtreecommitdiff
path: root/service/pixelated/bitmask_libraries/session.py
diff options
context:
space:
mode:
authorDuda Dornelles <ddornell@thoughtworks.com>2014-08-29 16:29:22 -0300
committerDuda Dornelles <ddornell@thoughtworks.com>2014-08-29 18:10:48 -0300
commitb727ab8090790db2854dac191faee702f085ac20 (patch)
tree6fc0fc8be8410def37d1931ea17a490f5bca96f1 /service/pixelated/bitmask_libraries/session.py
parentc11bef55ee74edddaa054456338ebd3bbf72ee2f (diff)
Refactoring into mailboxes and mailsender - less colaborators for mail service
Diffstat (limited to 'service/pixelated/bitmask_libraries/session.py')
-rw-r--r--service/pixelated/bitmask_libraries/session.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/service/pixelated/bitmask_libraries/session.py b/service/pixelated/bitmask_libraries/session.py
index bb9bd3fe..09229e17 100644
--- a/service/pixelated/bitmask_libraries/session.py
+++ b/service/pixelated/bitmask_libraries/session.py
@@ -21,16 +21,31 @@ from leap.mail.imap.account import SoledadBackedAccount
import sys
from leap.mail.imap.memorystore import MemoryStore
from leap.mail.imap.soledadstore import SoledadStore
+from pixelated.bitmask_libraries.config import LeapConfig
+from pixelated.bitmask_libraries.provider import LeapProvider
from twisted.internet import reactor
from .nicknym import NickNym
-from .auth import LeapAuthenticator
+from .auth import LeapAuthenticator, LeapCredentials
from .soledad import SoledadSessionFactory, SoledadSession
from .smtp import LeapSmtp
SESSIONS = {}
+def open(username, password, server_name):
+ try:
+ certs_home = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "certificates"))
+
+ config = LeapConfig(certs_home=certs_home)
+ provider = LeapProvider(server_name, config)
+ session = LeapSessionFactory(provider).create(LeapCredentials(username, password))
+ return session
+ except:
+ traceback.print_exc(file=sys.stdout)
+ raise
+
+
class LeapSession(object):
"""
A LEAP session.
@@ -118,6 +133,9 @@ class LeapSessionFactory(object):
incoming_mail_fetcher = self._create_incoming_mail_fetcher(nicknym, soledad,
account, auth)
+ smtp = LeapSmtp(self._provider, nicknym.keymanager, auth)
+ smtp.start()
+
return LeapSession(self._provider, auth, soledad, nicknym, account, incoming_mail_fetcher)
def _lookup_session(self, key):