From 895b07cae9741f44a1272b2f3875f8dd94763222 Mon Sep 17 00:00:00 2001 From: Vincent Richard Date: Mon, 24 Jun 2013 15:32:40 +0200 Subject: Added support for SIZE SMTP extension (RFC-1870). --- src/utility/encoder/qpEncoder.cpp | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/utility/encoder/qpEncoder.cpp') diff --git a/src/utility/encoder/qpEncoder.cpp b/src/utility/encoder/qpEncoder.cpp index d519de14..1768818c 100644 --- a/src/utility/encoder/qpEncoder.cpp +++ b/src/utility/encoder/qpEncoder.cpp @@ -532,6 +532,27 @@ utility::stream::size_type qpEncoder::decode(utility::inputStream& in, } +utility::stream::size_type qpEncoder::getEncodedSize(const utility::stream::size_type n) const +{ + const string::size_type propMaxLineLength = + getProperties().getProperty ("maxlinelength", static_cast (-1)); + + const bool cutLines = (propMaxLineLength != static_cast (-1)); + const string::size_type maxLineLength = std::min(propMaxLineLength, static_cast (74)); + + // Worst cast: 1 byte of input provide 3 bytes of output + // Count CRLF (2 bytes) for each line. + return n * 3 + (cutLines ? (n / maxLineLength) * 2 : 0); +} + + +utility::stream::size_type qpEncoder::getDecodedSize(const utility::stream::size_type n) const +{ + // Worst case: 1 byte of input equals 1 byte of output + return n; +} + + } // encoder } // utility } // vmime -- cgit v1.2.3