Merge pull request #241 from 0xd34df00d/body_type_parsing
Body type parsing
This commit is contained in:
commit
4c330bc623
@ -52,6 +52,21 @@ IMAPMessagePart::IMAPMessagePart(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
template<typename T>
|
||||||
|
vmime::string getPartName(const T& body_type) {
|
||||||
|
if (const auto* pparam = body_type->body_fields->body_fld_param.get()) {
|
||||||
|
for (const auto& param : pparam->items) {
|
||||||
|
if (param->string1->value == "NAME") {
|
||||||
|
return param->string2->value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
IMAPMessagePart::IMAPMessagePart(
|
IMAPMessagePart::IMAPMessagePart(
|
||||||
const shared_ptr <IMAPMessagePart>& parent,
|
const shared_ptr <IMAPMessagePart>& parent,
|
||||||
@ -72,6 +87,8 @@ IMAPMessagePart::IMAPMessagePart(
|
|||||||
|
|
||||||
m_size = part->body_type_text->body_fields->body_fld_octets->value;
|
m_size = part->body_type_text->body_fields->body_fld_octets->value;
|
||||||
|
|
||||||
|
m_name = getPartName(part->body_type_text);
|
||||||
|
|
||||||
} else if (part->body_type_msg) {
|
} else if (part->body_type_msg) {
|
||||||
|
|
||||||
m_mediaType = vmime::mediaType(
|
m_mediaType = vmime::mediaType(
|
||||||
@ -88,12 +105,7 @@ IMAPMessagePart::IMAPMessagePart(
|
|||||||
|
|
||||||
m_size = part->body_type_basic->body_fields->body_fld_octets->value;
|
m_size = part->body_type_basic->body_fields->body_fld_octets->value;
|
||||||
|
|
||||||
if (const auto* pparam = part->body_type_basic->body_fields->body_fld_param.get()) {
|
m_name = getPartName(part->body_type_basic);
|
||||||
for (const auto& param : pparam->items) {
|
|
||||||
if (param->string1->value == "NAME") {
|
|
||||||
m_name = param->string2->value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (part->body_ext_1part && part->body_ext_1part->body_fld_dsp) {
|
if (part->body_ext_1part && part->body_ext_1part->body_fld_dsp) {
|
||||||
@ -102,7 +114,6 @@ IMAPMessagePart::IMAPMessagePart(
|
|||||||
m_dispType = contentDisposition(cdisp->value);
|
m_dispType = contentDisposition(cdisp->value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
m_structure = null;
|
m_structure = null;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user