From 193a9ee85b1a491955a7181250ebf0296ccc5d0d Mon Sep 17 00:00:00 2001 From: saturneric Date: Thu, 28 Nov 2024 12:00:39 +0100 Subject: feat: remember boundary from parsing --- src/vmime/body.cpp | 11 +++++++---- 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 (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 m_contents; -- cgit v1.2.3