Browse Source

encrypt_message_for_self

ENGINE-781 Release_2.1.0-RC18
Volker Birk 5 years ago
parent
commit
fdcd5dec71
  1. 49
      message_cache.cc
  2. 21
      message_cache.hh

49
message_cache.cc

@ -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;
}
};

21
message_cache.hh

@ -57,6 +57,17 @@ namespace pEp {
PEP_encrypt_flags_t flags
);
static PEP_STATUS 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
);
static PEP_STATUS cache_release(const char *id);
protected:
@ -93,6 +104,16 @@ namespace pEp {
PEP_encrypt_flags_t flags
);
PEP_STATUS 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
);
static ::message *empty_message_copy(::message *src);
};

Loading…
Cancel
Save