diff options
-rw-r--r-- | src/vmime/body.cpp | 11 | ||||
-rw-r--r-- | src/vmime/body.hpp | 3 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/vmime/body.cpp b/src/vmime/body.cpp index 1d8ae847..0ef365e3 100644 --- a/src/vmime/body.cpp +++ b/src/vmime/body.cpp @@ -381,6 +381,10 @@ void body::parseImpl( m_contents = make_shared <streamContentHandler>(contentStream, length, enc); } + if (!boundary.empty()) { + m_boundary = boundary; + } + setParsedBounds(position, end); if (newPosition) { @@ -439,8 +443,7 @@ void body::generateImpl( if (!m_part) { - boundary = generateRandomBoundaryString(); - + boundary = m_boundary.empty() ? generateRandomBoundaryString() : m_boundary; } else { // Use current boundary string, if specified. If no "Content-Type" field is @@ -457,13 +460,13 @@ void body::generateImpl( } else { // No boundary string specified - boundary = generateRandomBoundaryString(); + boundary = m_boundary.empty() ? generateRandomBoundaryString() : m_boundary; } } else { // No Content-Type (and no boundary string specified) - boundary = generateRandomBoundaryString(); + boundary = m_boundary.empty() ? generateRandomBoundaryString() : m_boundary; } } diff --git a/src/vmime/body.hpp b/src/vmime/body.hpp index a17d1dbe..fad59bcd 100644 --- a/src/vmime/body.hpp +++ b/src/vmime/body.hpp @@ -306,7 +306,8 @@ private: string m_prologText; - string m_epilogText; + string m_epilogText; + string m_boundary; shared_ptr <const contentHandler> m_contents; |