diff options
| author | Barry Warsaw | 2014-09-27 20:17:05 -0400 |
|---|---|---|
| committer | Barry Warsaw | 2014-09-27 20:17:05 -0400 |
| commit | 2fcc921b2cca02976a7b1ca8da4f15d55595974e (patch) | |
| tree | a992a10f3859b892287bf7d2510bdd190cf457db /src/mailman/model | |
| parent | b3500aefb15c63ccf60ab4508868f770ffd2d309 (diff) | |
| parent | 95fc64b4894e5985bb8d0e5e944b2cda38c9a58c (diff) | |
| download | mailman-2fcc921b2cca02976a7b1ca8da4f15d55595974e.tar.gz mailman-2fcc921b2cca02976a7b1ca8da4f15d55595974e.tar.zst mailman-2fcc921b2cca02976a7b1ca8da4f15d55595974e.zip | |
PostgreSQL support by Abhilash, cleaned by Barry.
Diffstat (limited to 'src/mailman/model')
| -rw-r--r-- | src/mailman/model/message.py | 6 | ||||
| -rw-r--r-- | src/mailman/model/messagestore.py | 9 | ||||
| -rw-r--r-- | src/mailman/model/pending.py | 2 |
3 files changed, 10 insertions, 7 deletions
diff --git a/src/mailman/model/message.py b/src/mailman/model/message.py index 74a76ac30..691861d46 100644 --- a/src/mailman/model/message.py +++ b/src/mailman/model/message.py @@ -40,10 +40,10 @@ class Message(Model): __tablename__ = 'message' id = Column(Integer, primary_key=True) - message_id = Column(Unicode) - message_id_hash = Column(Unicode) - path = Column(LargeBinary) # TODO : was RawStr() # This is a Messge-ID field representation, not a database row id. + message_id = Column(Unicode) + message_id_hash = Column(LargeBinary) + path = Column(LargeBinary) @dbconnection def __init__(self, store, message_id, message_id_hash, path): diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py index 225d3d1ce..19fa8133f 100644 --- a/src/mailman/model/messagestore.py +++ b/src/mailman/model/messagestore.py @@ -66,7 +66,7 @@ class MessageStore: 'Message ID already exists in message store: {0}'.format( message_id)) shaobj = hashlib.sha1(message_id) - hash32 = base64.b32encode(shaobj.digest()).decode('ascii') + hash32 = base64.b32encode(shaobj.digest()) del message['X-Message-ID-Hash'] message['X-Message-ID-Hash'] = hash32 # Calculate the path on disk where we're going to store this message @@ -115,8 +115,11 @@ class MessageStore: @dbconnection def get_message_by_hash(self, store, message_id_hash): - if isinstance(message_id_hash, bytes): - message_id_hash = message_id_hash.decode('utf-8') + # It's possible the hash came from a message header, in which case it + # will be a Unicode. However when coming from source code, it may be + # bytes object. Coerce to the latter if necessary; it must be ASCII. + if not isinstance(message_id_hash, bytes): + message_id_hash = message_id_hash.encode('ascii') row = store.query(Message).filter_by( message_id_hash=message_id_hash).first() if row is None: diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py index 68a8cd63e..691e94fd9 100644 --- a/src/mailman/model/pending.py +++ b/src/mailman/model/pending.py @@ -71,7 +71,7 @@ class Pended(Model): __tablename__ = 'pended' id = Column(Integer, primary_key=True) - token = Column(LargeBinary) # TODO : was RawStr() + token = Column(LargeBinary) expiration_date = Column(DateTime) key_values = relationship('PendedKeyValue') |
