Browse Source

LIB-15 - "Need cache_decrypt_message() to pass back longmsg/longmsg_formatted"

Release_2.1
heck 1 year ago
parent
commit
08a09d41e6
1 changed files with 28 additions and 8 deletions
  1. +28
    -8
      src/message_cache.cc

+ 28
- 8
src/message_cache.cc View File

@ -196,7 +196,7 @@ namespace pEp {
return false;
}
static ::message *empty_message_copy(const ::message *src, std::string _id = "")
static ::message *empty_message_copy(const ::message *src, std::string _id = "", bool get_longmsg = false)
{
if (!src)
return nullptr;
@ -207,12 +207,32 @@ namespace pEp {
dst->id = dup(src->id);
if (!emptystr(src->shortmsg))
dst->shortmsg = dup(src->shortmsg);
else if (!emptystr(src->longmsg))
dst->longmsg = dup("pEp");
else if (!emptystr(src->longmsg_formatted))
dst->longmsg_formatted = dup("<pEp/>");
if (get_longmsg) {
if (!emptystr(src->shortmsg)) {
dst->shortmsg = dup(src->shortmsg);
}
// We need either longmsg or longmsg_formatted for a "message preview".
if (!emptystr(src->longmsg)) {
dst->longmsg = dup(src->longmsg);
} else {
if (!emptystr(src->longmsg_formatted)) {
dst->longmsg_formatted = dup(src->longmsg_formatted);
}
}
} else {
// It is a pEp convention to return at least one of shortmsg, longmsg or longmsg_formatted.
if (!emptystr(src->shortmsg)) {
dst->shortmsg = dup(src->shortmsg);
} else {
if (!emptystr(src->longmsg)) {
dst->longmsg = dup("pEp");
} else {
if (!emptystr(src->longmsg_formatted)) {
dst->longmsg_formatted = dup("<pEp/>");
}
}
}
}
// attachments are never copied
@ -313,7 +333,7 @@ namespace pEp {
::message *_dst = nullptr;
PEP_STATUS status = ::decrypt_message(session, src, &_dst, keylist, rating, flags);
*dst = empty_message_copy(_dst, _id);
*dst = empty_message_copy(_dst, _id, true);
{
std::lock_guard<std::mutex> l(_mtx);


Loading…
Cancel
Save