From c3eb729e3fff70c64eb425e1b5943bfe52fccc05 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 26 Aug 2013 15:30:24 +0200 Subject: add crate icon and link --- mail/README.rst | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'mail') diff --git a/mail/README.rst b/mail/README.rst index 7224cba..9090d7c 100644 --- a/mail/README.rst +++ b/mail/README.rst @@ -2,6 +2,10 @@ leap.mail ========= Mail services for the LEAP Client. +.. image:: https://pypip.in/v/leap.mail/badge.png + :target: https://crate.io/packages/leap.mail + + More info: https://leap.se running tests -- cgit v1.2.3 From dfd6756ba89a1b993837869d1e8199c93ae62200 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Wed, 28 Aug 2013 15:05:01 -0300 Subject: Use dirspec instead of plain xdg. Closes #3574. --- mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg | 1 + mail/src/leap/mail/imap/service/imap-server.tac | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg (limited to 'mail') diff --git a/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg b/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg new file mode 100644 index 0000000..9bdc507 --- /dev/null +++ b/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg @@ -0,0 +1 @@ + o Use dirspec instead of plain xdg. Closes #3574. diff --git a/mail/src/leap/mail/imap/service/imap-server.tac b/mail/src/leap/mail/imap/service/imap-server.tac index 8638be2..da72cae 100644 --- a/mail/src/leap/mail/imap/service/imap-server.tac +++ b/mail/src/leap/mail/imap/service/imap-server.tac @@ -1,10 +1,9 @@ import ConfigParser import os -from xdg import BaseDirectory - from leap.soledad.client import Soledad from leap.mail.imap.service import imap +from leap.common.config import get_path_prefix config = ConfigParser.ConfigParser() @@ -34,7 +33,7 @@ def initialize_soledad_mailbox(user_uuid, soledad_pass, server_url, :rtype: Soledad instance """ - base_config = BaseDirectory.xdg_config_home + base_config = get_path_prefix() secret_path = os.path.join( base_config, "leap", "soledad", "%s.secret" % user_uuid) -- cgit v1.2.3 From cd20f7077e95602777b8c6c2281e723b331ce6e4 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 2 Sep 2013 00:25:24 +0200 Subject: Signal unread message when msg saved locally. Closes: #3654 --- mail/changes/bug_3654_signal_unread_when_saved | 1 + mail/src/leap/mail/imap/fetch.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 mail/changes/bug_3654_signal_unread_when_saved (limited to 'mail') diff --git a/mail/changes/bug_3654_signal_unread_when_saved b/mail/changes/bug_3654_signal_unread_when_saved new file mode 100644 index 0000000..e8127f5 --- /dev/null +++ b/mail/changes/bug_3654_signal_unread_when_saved @@ -0,0 +1 @@ + o Signal unread message to UI when message is saved locally. Closes: #3654 diff --git a/mail/src/leap/mail/imap/fetch.py b/mail/src/leap/mail/imap/fetch.py index 8b29c5e..e620a58 100644 --- a/mail/src/leap/mail/imap/fetch.py +++ b/mail/src/leap/mail/imap/fetch.py @@ -150,6 +150,13 @@ class LeapIncomingMail(object): doclist = self._soledad.get_from_index("just-mail", "*") return doclist + def _signal_unread_to_ui(self): + """ + Sends unread event to ui. + """ + leap_events.signal( + IMAP_UNREAD_MAIL, str(self._inbox.getUnseenCount())) + def _signal_fetch_to_ui(self, doclist): """ Sends leap events to ui. @@ -164,8 +171,7 @@ class LeapIncomingMail(object): log.msg("there are %s mails" % (num_mails,)) leap_events.signal( IMAP_FETCHED_INCOMING, str(num_mails), str(fetched_ts)) - leap_events.signal( - IMAP_UNREAD_MAIL, str(self._inbox.getUnseenCount())) + self._signal_unread_to_ui() return doclist def _sync_soledad_error(self, failure): @@ -318,3 +324,4 @@ class LeapIncomingMail(object): self._soledad.delete_doc(doc) log.msg("deleted doc %s from incoming" % doc_id) leap_events.signal(IMAP_MSG_DELETED_INCOMING) + self._signal_unread_to_ui() -- cgit v1.2.3 From 76b23ec92b4b426a3ddebc82561bc28c9b7b2913 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 2 Sep 2013 00:53:01 +0200 Subject: Send UNREAD event to UI when flag changes. Closes: #3662 --- mail/changes/bug_3662_signal_unread_when_flag_changes | 1 + mail/src/leap/mail/imap/server.py | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 mail/changes/bug_3662_signal_unread_when_flag_changes (limited to 'mail') diff --git a/mail/changes/bug_3662_signal_unread_when_flag_changes b/mail/changes/bug_3662_signal_unread_when_flag_changes new file mode 100644 index 0000000..216c2a9 --- /dev/null +++ b/mail/changes/bug_3662_signal_unread_when_flag_changes @@ -0,0 +1 @@ + o Signal unread to UI when flag in message change. Closes: #3662 diff --git a/mail/src/leap/mail/imap/server.py b/mail/src/leap/mail/imap/server.py index cfcb3d6..ae76833 100644 --- a/mail/src/leap/mail/imap/server.py +++ b/mail/src/leap/mail/imap/server.py @@ -35,6 +35,8 @@ from twisted.python import log #import u1db +from leap.common import events as leap_events +from leap.common.events.events_pb2 import IMAP_UNREAD_MAIL from leap.common.check import leap_assert, leap_assert_type from leap.soledad.client import Soledad @@ -1405,6 +1407,13 @@ class SoledadMailbox(WithMsgFields): result.append((msg_id, msg)) return tuple(result) + def _signal_unread_to_ui(self): + """ + Sends unread event to ui. + """ + leap_events.signal( + IMAP_UNREAD_MAIL, str(self.getUnseenCount())) + def store(self, messages, flags, mode, uid): """ Sets the flags of one or more messages. @@ -1455,6 +1464,7 @@ class SoledadMailbox(WithMsgFields): self._update(msg.setFlags(flags)) result[msg_id] = msg.getFlags() + self._signal_unread_to_ui() return result def close(self): -- cgit v1.2.3 From b6123d0f98a60914e5d6a0a6d4f80f72b935a697 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 3 Sep 2013 11:12:18 +0200 Subject: Return SMTP factory so the client can stop it. --- mail/changes/feature_return-smtp-factory | 1 + mail/src/leap/mail/smtp/__init__.py | 35 +++++++++++++++++--------------- 2 files changed, 20 insertions(+), 16 deletions(-) create mode 100644 mail/changes/feature_return-smtp-factory (limited to 'mail') diff --git a/mail/changes/feature_return-smtp-factory b/mail/changes/feature_return-smtp-factory new file mode 100644 index 0000000..d46cac3 --- /dev/null +++ b/mail/changes/feature_return-smtp-factory @@ -0,0 +1 @@ + o SMTP service invocation returns factory instance. diff --git a/mail/src/leap/mail/smtp/__init__.py b/mail/src/leap/mail/smtp/__init__.py index d5d61bf..cc9cc26 100644 --- a/mail/src/leap/mail/smtp/__init__.py +++ b/mail/src/leap/mail/smtp/__init__.py @@ -37,22 +37,24 @@ def setup_smtp_relay(port, keymanager, smtp_host, smtp_port, This function sets up the SMTP relay configuration and the Twisted reactor. - @param port: The port in which to run the server. - @type port: int - @param keymanager: A Key Manager from where to get recipients' public - keys. - @type keymanager: leap.common.keymanager.KeyManager - @param smtp_host: The hostname of the remote SMTP server. - @type smtp_host: str - @param smtp_port: The port of the remote SMTP server. - @type smtp_port: int - @param smtp_cert: The client certificate for authentication. - @type smtp_cert: str - @param smtp_key: The client key for authentication. - @type smtp_key: str - @param encrypted_only: Whether the SMTP relay should send unencrypted mail - or not. - @type encrypted_only: bool + :param port: The port in which to run the server. + :type port: int + :param keymanager: A Key Manager from where to get recipients' public + keys. + :type keymanager: leap.common.keymanager.KeyManager + :param smtp_host: The hostname of the remote SMTP server. + :type smtp_host: str + :param smtp_port: The port of the remote SMTP server. + :type smtp_port: int + :param smtp_cert: The client certificate for authentication. + :type smtp_cert: str + :param smtp_key: The client key for authentication. + :type smtp_key: str + :param encrypted_only: Whether the SMTP relay should send unencrypted mail + or not. + :type encrypted_only: bool + + :returns: SMTPFactory """ # The configuration for the SMTP relay is a dict with the following # format: @@ -77,6 +79,7 @@ def setup_smtp_relay(port, keymanager, smtp_host, smtp_port, try: reactor.listenTCP(port, factory) signal(proto.SMTP_SERVICE_STARTED, str(smtp_port)) + return factory except CannotListenError: logger.error("STMP Service failed to start: " "cannot listen in port %s" % ( -- cgit v1.2.3 From ad2d2dc1a18104abd1eeb5feeef4e92dac7c25f5 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Tue, 3 Sep 2013 20:35:00 +0200 Subject: Make mail services bind to 127.0.0.1 instead of 0.0.0.0 Closes: #3627 --- mail/changes/bug_3627_listen-only-localhost | 1 + mail/src/leap/mail/imap/service/imap.py | 3 ++- mail/src/leap/mail/smtp/__init__.py | 3 ++- 3 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 mail/changes/bug_3627_listen-only-localhost (limited to 'mail') diff --git a/mail/changes/bug_3627_listen-only-localhost b/mail/changes/bug_3627_listen-only-localhost new file mode 100644 index 0000000..9376671 --- /dev/null +++ b/mail/changes/bug_3627_listen-only-localhost @@ -0,0 +1 @@ + o Make mail services bind to 127.0.0.1. Closes: #3627 diff --git a/mail/src/leap/mail/imap/service/imap.py b/mail/src/leap/mail/imap/service/imap.py index 9e9a524..b840e86 100644 --- a/mail/src/leap/mail/imap/service/imap.py +++ b/mail/src/leap/mail/imap/service/imap.py @@ -157,7 +157,8 @@ def run_service(*args, **kwargs): from twisted.internet import reactor try: - reactor.listenTCP(port, factory) + reactor.listenTCP(port, factory, + interface="localhost") fetcher = LeapIncomingMail( keymanager, soledad, diff --git a/mail/src/leap/mail/smtp/__init__.py b/mail/src/leap/mail/smtp/__init__.py index cc9cc26..2a4abc5 100644 --- a/mail/src/leap/mail/smtp/__init__.py +++ b/mail/src/leap/mail/smtp/__init__.py @@ -77,7 +77,8 @@ def setup_smtp_relay(port, keymanager, smtp_host, smtp_port, # configure the use of this service with twistd factory = SMTPFactory(keymanager, config) try: - reactor.listenTCP(port, factory) + reactor.listenTCP(port, factory, + interface="localhost") signal(proto.SMTP_SERVICE_STARTED, str(smtp_port)) return factory except CannotListenError: -- cgit v1.2.3 From 6b1c81448f34b844f198bed20c31901617d4f0b5 Mon Sep 17 00:00:00 2001 From: Ivan Alejandro Date: Fri, 6 Sep 2013 15:57:06 -0300 Subject: Fold in changes. --- mail/CHANGELOG | 7 +++++++ mail/changes/bug_3627_listen-only-localhost | 1 - mail/changes/bug_3654_signal_unread_when_saved | 1 - mail/changes/bug_3662_signal_unread_when_flag_changes | 1 - mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg | 1 - mail/changes/feature_return-smtp-factory | 1 - 6 files changed, 7 insertions(+), 5 deletions(-) delete mode 100644 mail/changes/bug_3627_listen-only-localhost delete mode 100644 mail/changes/bug_3654_signal_unread_when_saved delete mode 100644 mail/changes/bug_3662_signal_unread_when_flag_changes delete mode 100644 mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg delete mode 100644 mail/changes/feature_return-smtp-factory (limited to 'mail') diff --git a/mail/CHANGELOG b/mail/CHANGELOG index 761669f..40446be 100644 --- a/mail/CHANGELOG +++ b/mail/CHANGELOG @@ -1,3 +1,10 @@ +0.3.2 Sep 6: + o Make mail services bind to 127.0.0.1. Closes: #3627. + o Signal unread message to UI when message is saved locally. Closes: #3654. + o Signal unread to UI when flag in message change. Closes: #3662. + o Use dirspec instead of plain xdg. Closes #3574. + o SMTP service invocation returns factory instance. + 0.3.1 Aug 23: o Avoid logging dummy password on imap server. Closes: #3416 o Do not fail while processing an empty mail, just skip it. Fixes diff --git a/mail/changes/bug_3627_listen-only-localhost b/mail/changes/bug_3627_listen-only-localhost deleted file mode 100644 index 9376671..0000000 --- a/mail/changes/bug_3627_listen-only-localhost +++ /dev/null @@ -1 +0,0 @@ - o Make mail services bind to 127.0.0.1. Closes: #3627 diff --git a/mail/changes/bug_3654_signal_unread_when_saved b/mail/changes/bug_3654_signal_unread_when_saved deleted file mode 100644 index e8127f5..0000000 --- a/mail/changes/bug_3654_signal_unread_when_saved +++ /dev/null @@ -1 +0,0 @@ - o Signal unread message to UI when message is saved locally. Closes: #3654 diff --git a/mail/changes/bug_3662_signal_unread_when_flag_changes b/mail/changes/bug_3662_signal_unread_when_flag_changes deleted file mode 100644 index 216c2a9..0000000 --- a/mail/changes/bug_3662_signal_unread_when_flag_changes +++ /dev/null @@ -1 +0,0 @@ - o Signal unread to UI when flag in message change. Closes: #3662 diff --git a/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg b/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg deleted file mode 100644 index 9bdc507..0000000 --- a/mail/changes/feature-3574_use-dirspec-instead-of-plain-xdg +++ /dev/null @@ -1 +0,0 @@ - o Use dirspec instead of plain xdg. Closes #3574. diff --git a/mail/changes/feature_return-smtp-factory b/mail/changes/feature_return-smtp-factory deleted file mode 100644 index d46cac3..0000000 --- a/mail/changes/feature_return-smtp-factory +++ /dev/null @@ -1 +0,0 @@ - o SMTP service invocation returns factory instance. -- cgit v1.2.3