You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by se...@apache.org on 2017/03/19 23:34:04 UTC
incubator-ponymail git commit: Bug: archiver stores attachment binary
data types with embedded newlines
Repository: incubator-ponymail
Updated Branches:
refs/heads/master 0783a476d -> 9b08bfe33
Bug: archiver stores attachment binary data types with embedded newlines
This fixes #262
Project: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/commit/9b08bfe3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/tree/9b08bfe3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ponymail/diff/9b08bfe3
Branch: refs/heads/master
Commit: 9b08bfe33db81b1e0fcf5beec8060a4e0a78514b
Parents: 0783a47
Author: Sebb <se...@apache.org>
Authored: Sun Mar 19 23:32:38 2017 +0000
Committer: Sebb <se...@apache.org>
Committed: Sun Mar 19 23:32:38 2017 +0000
----------------------------------------------------------------------
CHANGELOG.md | 1 +
tools/archiver.py | 8 ++++++--
2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/9b08bfe3/CHANGELOG.md
----------------------------------------------------------------------
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0c05ad4..ee542d4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -142,6 +142,7 @@
- Bug: invalid style setting: overflow:hide => overflow:hidden (#364)
- Bug: wordcloud.js logs to the console (#363)
- Bug: source.lua does not specify the charset (#367)
+- Bug: archiver stores attachment binary data types with embedded newlines (#262)
## CHANGES in 0.9b:
http://git-wip-us.apache.org/repos/asf/incubator-ponymail/blob/9b08bfe3/tools/archiver.py
----------------------------------------------------------------------
diff --git a/tools/archiver.py b/tools/archiver.py
index f7d7896..2061841 100755
--- a/tools/archiver.py
+++ b/tools/archiver.py
@@ -49,7 +49,7 @@ from email import policy
import time
from collections import namedtuple
import re
-import codecs
+from base64 import standard_b64encode
import chardet
import configparser
import os
@@ -81,6 +81,10 @@ if config.has_option('elasticsearch', 'user'):
archiver_generator = config.get("archiver", "generator", fallback="medium")
+def encode_base64(bytes):
+ """ Convert bytes to base64 as text string (no newlines) """
+ return standard_b64encode(bytes).decode('ascii', 'ignore')
+
def parse_attachment(part):
cd = part.get("Content-Disposition", None)
if cd:
@@ -99,7 +103,7 @@ def parse_attachment(part):
attachment['size'] = len(fd)
attachment['filename'] = filename
h = hashlib.sha256(fd).hexdigest()
- b64 = codecs.encode(fd, "base64").decode('ascii', 'ignore')
+ b64 = encode_base64(fd)
attachment['hash'] = h
return attachment, b64 # Return meta data and contents separately
return None, None