From e38a2fc25b5af1ec3ef6ffa8b1a4c2224bb702fc Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Sat, 2 Jul 2011 18:59:56 +0200 Subject: [PATCH] Better errors catching. see #139 --- extensions/sievefilters/lib.py | 7 ++++++- extensions/sievefilters/views.py | 9 ++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/extensions/sievefilters/lib.py b/extensions/sievefilters/lib.py index a9f3bdcf9..41f321017 100644 --- a/extensions/sievefilters/lib.py +++ b/extensions/sievefilters/lib.py @@ -14,7 +14,10 @@ class SieveClient(object): __metaclass__ = ConnectionsManager def __init__(self, user=None, password=None): - ret, msg = self.login(user, password) + try: + ret, msg = self.login(user, password) + except Error, e: + raise ConnectionError(str(e)) if not ret: raise ConnectionError(msg) @@ -29,6 +32,8 @@ class SieveClient(object): try: ret = self.msc.connect(user, password, use_starttls, authmech) except Error, e: + ret = False + if not ret: return False, _("Connection to MANAGESIEVE server failed, check your configuration") return True, None diff --git a/extensions/sievefilters/views.py b/extensions/sievefilters/views.py index 8f5d54db8..b8abcafed 100644 --- a/extensions/sievefilters/views.py +++ b/extensions/sievefilters/views.py @@ -1,5 +1,5 @@ # coding: utf-8 - +from sievelib.managesieve import Error from django.http import HttpResponse from django.contrib.auth.decorators import login_required from django.utils.translation import ugettext as _ @@ -18,8 +18,11 @@ def index(request, tplname="sievefilters/index.html"): password=request.session["password"]) except ConnectionError, e: return _render_error(request, user_context={"error" : e}) - - active_script, scripts = sc.listscripts() + + try: + active_script, scripts = sc.listscripts() + except Error, e: + return _render_error(request, user_context={"error" : e}) if active_script is None: active_script = "" default_script = scripts[0] if len(scripts) else ""