--- a/src/bincimapmime/mime-parseonlyheader.cc
+++ b/src/bincimapmime/mime-parseonlyheader.cc
@@ -47,20 +47,15 @@
#endif /* NO_NAMESPACES */
//------------------------------------------------------------------------
-void Binc::MimeDocument::parseOnlyHeader(int fd) const
+void Binc::MimeDocument::parseOnlyHeader(int fd)
{
if (allIsParsed || headerIsParsed)
return;
headerIsParsed = true;
- if (!mimeSource || mimeSource->getFileDescriptor() != fd) {
- delete mimeSource;
- mimeSource = new MimeInputSource(fd);
- } else {
- mimeSource->reset();
- }
-
+ delete doc_mimeSource;
+ doc_mimeSource = new MimeInputSource(fd);
headerstartoffsetcrlf = 0;
headerlength = 0;
@@ -72,18 +67,18 @@
nlines = 0;
nbodylines = 0;
- doParseOnlyHeader("");
+ doParseOnlyHeader(doc_mimeSource, "");
}
-void Binc::MimeDocument::parseOnlyHeader(istream& s) const
+void Binc::MimeDocument::parseOnlyHeader(istream& s)
{
if (allIsParsed || headerIsParsed)
return;
headerIsParsed = true;
- delete mimeSource;
- mimeSource = new MimeInputSourceStream(s);
+ delete doc_mimeSource;
+ doc_mimeSource = new MimeInputSourceStream(s);
headerstartoffsetcrlf = 0;
headerlength = 0;
@@ -95,12 +90,14 @@
nlines = 0;
nbodylines = 0;
- doParseOnlyHeader("");
+ doParseOnlyHeader(doc_mimeSource, "");
}
//------------------------------------------------------------------------
-int Binc::MimePart::doParseOnlyHeader(const string &toboundary) const
+int Binc::MimePart::doParseOnlyHeader(MimeInputSource *ms,
+ const string &toboundary)
{
+ mimeSource = ms;
string name;
string content;
char cqueue[4];