Commit ccc2e3d0 authored by Moshe Zadka's avatar Moshe Zadka

OK, checking in patch 103329.

Please check it against your nearest pop server --
mine doesn't support APOP (I checked I'm getting the same error
message, though)
parent 2e9b3967
......@@ -15,7 +15,7 @@ TESTPASSWORD = "_passwd_"
# Imports
import regex, socket, string
import re, socket, string
# Exception raised when an error or invalid response is received:
......@@ -263,7 +263,7 @@ class POP3:
return self._shortcmd('RPOP %s' % user)
timestamp = regex.compile('\+OK.*\(<[^>]+>\)')
timestamp = re.compile(r'\+OK.*(<[^>]+>)')
def apop(self, user, secret):
"""Authorisation
......@@ -276,10 +276,11 @@ class POP3:
NB: mailbox is locked by server from here to 'quit()'
"""
if self.timestamp.match(self.welcome) <= 0:
m = self.timestamp.match(self.welcome)
if not m:
raise error_proto('-ERR APOP not supported by server')
import md5
digest = md5.new(self.timestamp.group(1)+secret).digest()
digest = md5.new(m.group(1)+secret).digest()
digest = string.join(map(lambda x:'%02x'%ord(x), digest), '')
return self._shortcmd('APOP %s %s' % (user, digest))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment