|
|
@ -55,6 +55,20 @@ namespace pEp { |
|
|
|
enc_format, flags); |
|
|
|
} |
|
|
|
|
|
|
|
PEP_STATUS MessageCache::cache_encrypt_message_for_self( |
|
|
|
PEP_SESSION session, |
|
|
|
pEp_identity* target_id, |
|
|
|
message *src, |
|
|
|
stringlist_t* extra, |
|
|
|
message **dst, |
|
|
|
PEP_enc_format enc_format, |
|
|
|
PEP_encrypt_flags_t flags |
|
|
|
) |
|
|
|
{ |
|
|
|
return message_cache.encrypt_message_for_self(session, target_id, src, |
|
|
|
extra, dst, enc_format, flags); |
|
|
|
} |
|
|
|
|
|
|
|
PEP_STATUS MessageCache::cache_release(const char *id) |
|
|
|
{ |
|
|
|
try { |
|
|
@ -391,5 +405,40 @@ namespace pEp { |
|
|
|
|
|
|
|
return status; |
|
|
|
} |
|
|
|
|
|
|
|
PEP_STATUS MessageCache::encrypt_message_for_self( |
|
|
|
PEP_SESSION session, |
|
|
|
pEp_identity* target_id, |
|
|
|
message *src, |
|
|
|
stringlist_t* extra, |
|
|
|
message **dst, |
|
|
|
PEP_enc_format enc_format, |
|
|
|
PEP_encrypt_flags_t flags |
|
|
|
) |
|
|
|
{ |
|
|
|
::message *_msg; |
|
|
|
{ |
|
|
|
std::lock_guard<std::mutex> l(_mtx); |
|
|
|
_msg = message_cache._cache.at(src->id).src; |
|
|
|
} |
|
|
|
|
|
|
|
swapContent(src, _msg); |
|
|
|
|
|
|
|
::message *_dst = nullptr; |
|
|
|
PEP_STATUS status = ::encrypt_message_for_self(session, target_id, src, |
|
|
|
extra, &_dst, enc_format, flags); |
|
|
|
|
|
|
|
swapContent(_msg, src); |
|
|
|
|
|
|
|
*dst = empty_message_copy(_dst); |
|
|
|
|
|
|
|
{ |
|
|
|
std::lock_guard<std::mutex> l(_mtx); |
|
|
|
::free_message(message_cache._cache.at(src->id).dst); |
|
|
|
message_cache._cache.at(src->id).dst = _dst; |
|
|
|
} |
|
|
|
|
|
|
|
return status; |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|