diff options
author | Kali Kaneko <kali@leap.se> | 2015-03-23 12:57:02 -0400 |
---|---|---|
committer | Kali Kaneko <kali@leap.se> | 2015-03-23 14:45:45 -0400 |
commit | 822385e16b4f0f7a7d74905984bc4b4d76d187be (patch) | |
tree | 01a630c0d55df618797bc7ea7200c5cfa52fd8e1 /mail | |
parent | 62a02b3b1e14afcbec82d3fca2f906ca6dd38715 (diff) |
[bug] report the correct size for mime parts
The MIME size is the size of the body, w/o counting the headers.
Releases: 0.4.0
Diffstat (limited to 'mail')
-rw-r--r-- | mail/src/leap/mail/mail.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/mail/src/leap/mail/mail.py b/mail/src/leap/mail/mail.py index d92ff79..fd2f39a 100644 --- a/mail/src/leap/mail/mail.py +++ b/mail/src/leap/mail/mail.py @@ -135,7 +135,15 @@ class MessagePart(object): self._index = index def get_size(self): - return self._pmap['size'] + """ + Size of the body, in octets. + """ + total = self._pmap['size'] + _h = self.get_headers() + headers = len( + '\n'.join(["%s: %s" % (k, v) for k, v in dict(_h).items()])) + # have to subtract 2 blank lines + return total - headers - 2 def get_body_file(self): payload = "" @@ -148,6 +156,7 @@ class MessagePart(object): raise NotImplementedError if payload: payload = _encode_payload(payload) + return _write_and_rewind(payload) def get_headers(self): @@ -252,9 +261,10 @@ class Message(object): def get_size(self): """ - Size, in octets. + Size of the whole message, in octets (including headers). """ - return self._wrapper.fdoc.size + total = self._wrapper.fdoc.size + return total def is_multipart(self): """ |