From 0406240de940a67c5414aa027f9da9969e7a0f0d Mon Sep 17 00:00:00 2001 From: Roker Date: Wed, 18 Mar 2020 10:09:44 +0100 Subject: [PATCH] JSON-135: Add mime_encode_message() and mime_decode_message() to the JSON API. Bump server version to 0.18.2 --- server/ev_server.cc | 6 ++++++ server/pEp-types.cc | 14 ++++++++++++++ server/server_version.cc | 3 ++- 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/server/ev_server.cc b/server/ev_server.cc index 96e79c3..cabf9df 100644 --- a/server/ev_server.cc +++ b/server/ev_server.cc @@ -91,6 +91,12 @@ const FunctionMap functions = { FP( "identity_rating" , new Func, Out>( &identity_rating) ), FP( "get_key_rating_for_user", new Func, In, Out>( &get_key_rating_for_user) ), + // from mime.h + FP( "MIME handling API", new Separator), + FP( "mime_encode_message", new Func, In, Out>( &mime_encode_message )), + FP( "mime_decode_message", new Func, InLength<>, Out> ( &mime_decode_message )), + + // from pEpEngine.h FP( "pEp Engine Core API", new Separator), // FP( "log_event", new Func, In, In, In>( &log_event) ), FP( "get_trustwords", new Func, In, In, Out, Out, In>( &get_trustwords) ), diff --git a/server/pEp-types.cc b/server/pEp-types.cc index eac1753..eb1636d 100644 --- a/server/pEp-types.cc +++ b/server/pEp-types.cc @@ -55,6 +55,12 @@ In::~In() free_message(value); } +template<> +In::~In() +{ + free_message(const_cast(value)); +} + template<> In::~In() { @@ -230,6 +236,12 @@ message* from_json(const js::Value& v) return msg.release(); } +template<> +const message* from_json(const js::Value& v) +{ + return const_cast( from_json(v) ); +} + template<> pEp_identity* from_json(const js::Value& v) @@ -711,6 +723,8 @@ js::Value Type2String::get() { return "Session"; } template<> js::Value Type2String<_message*>::get() { return "Message"; } +template<> +js::Value Type2String::get() { return "Message"; } template<> js::Value Type2String::get() { return "Timestamp"; } diff --git a/server/server_version.cc b/server/server_version.cc index 09aa043..dee8132 100644 --- a/server/server_version.cc +++ b/server/server_version.cc @@ -96,7 +96,8 @@ const ServerVersion& server_version() //static const ServerVersion sv(0,16,1); // JSON-120: add support for key_reset_identity(), key_reset_user(), and key_reset_all_own_keys() //static const ServerVersion sv(0,17,0); // kick out getGpgEnvironment(). It was Enigmail-only (JSON-18) and breaks architecture. Kick-out hotfixer un-feature. //static const ServerVersion sv(0,18,0); // JSON-127: 'src' in encrypt_message() is InOut. -static const ServerVersion sv(0,18,1); // JSON-130: some data members in pEp_identity added +//static const ServerVersion sv(0,18,1); // JSON-130: some data members in pEp_identity added +static const ServerVersion sv(0,18,2); // JSON-135: Add mime_encode_message() and mime_decode_message() to the JSON API return sv; }