diff --git a/server/ev_server.cc b/server/ev_server.cc index db58bb8..481991c 100644 --- a/server/ev_server.cc +++ b/server/ev_server.cc @@ -75,38 +75,21 @@ using In_Pep_Session = In; // these are the pEp functions that are callable by the client const FunctionMap functions = { - // from message_api.h - FP( "Message API", new Separator ), - FP( "MIME_encrypt_message", new Func, InLength<>, In, - Out, In, In>( &MIME_encrypt_message ) ), - FP( "MIME_encrypt_message_for_self", new Func, In, InLength<>, In, - Out, In, In>( &MIME_encrypt_message_for_self ) ), - -#ifdef ENIGMAIL_2_0_COMPAT - FP( "MIME_decrypt_message", new Func, InLength<>, - Out, Out, Out, Out>( &MIME_decrypt_message_20 ) ), -#else - FP( "MIME_decrypt_message", new Func, InLength<>, - Out, InOutP, Out, InOutP, Out>( &MIME_decrypt_message ) ), -#endif FP( "startKeySync", new Func>( &JsonAdapter::startSync) ), FP( "stopKeySync", new Func>( &JsonAdapter::stopSync ) ), FP( "startKeyserverLookup", new Func( &JsonAdapter::startKeyserverLookup) ), FP( "stopKeyserverLookup", new Func( &JsonAdapter::stopKeyserverLookup ) ), + // from message_api.h + FP( "Message API", new Separator ), FP( "encrypt_message", new Func, In, Out, In, In>( &encrypt_message ) ), FP( "encrypt_message_and_add_priv_key", new Func, Out, In, In, In>( &encrypt_message_and_add_priv_key) ), FP( "encrypt_message_for_self", new Func, In, In, Out, In, In>( &encrypt_message_for_self ) ), -#ifdef ENIGMAIL_2_0_COMPAT - FP( "decrypt_message", new Func, Out, Out, Out, Out>( &decrypt_message ) ), -#else FP( "decrypt_message", new Func, Out, InOutP, Out, InOutP>( &decrypt_message ) ), -#endif FP( "outgoing_message_rating", new Func, Out>( &outgoing_message_rating ) ), FP( "identity_rating" , new Func, Out>( &identity_rating) ), FP( "get_key_rating_for_user", new Func, In, Out>( &get_key_rating_for_user) ), @@ -168,7 +151,7 @@ const FunctionMap functions = { FP( "Event Listener & Results", new Separator ), FP( "registerEventListener" , new Func, In, In, In> ( &JsonAdapter::registerEventListener) ), FP( "unregisterEventListener", new Func, In, In, In> ( &JsonAdapter::unregisterEventListener) ), - FP( "deliverHandshakeResult" , new Func, In> (&deliverHandshakeResult) ), + FP( "deliverHandshakeResult" , new Func, In > (&deliverHandshakeResult) ), // my own example function that does something useful. :-) FP( "Other", new Separator ), diff --git a/server/pep-types.cc b/server/pep-types.cc index 05481ea..43e25dc 100644 --- a/server/pep-types.cc +++ b/server/pep-types.cc @@ -89,6 +89,12 @@ Out::~Out() free_identity_list(value); } +template<> +In::~In() +{ + free_identity_list(const_cast(value)); +} + template<> In::~In() @@ -357,6 +363,11 @@ identity_list* from_json(const js::Value& v) return il.release(); } +template<> +const identity_list* from_json(const js::Value& v) +{ + return from_json(v); +} template<> _bloblist_t* from_json<_bloblist_t*>(const js::Value& v) @@ -681,6 +692,8 @@ js::Value Type2String::get() { return "Identity"; } template<> js::Value Type2String::get() { return "IdentityList"; } +template<> +js::Value Type2String::get() { return "IdentityList"; } template<> js::Value Type2String<_stringlist_t*>::get() { return "StringList"; } diff --git a/server/server_version.cc b/server/server_version.cc index b7b76ee..b61a831 100644 --- a/server/server_version.cc +++ b/server/server_version.cc @@ -87,17 +87,11 @@ const ServerVersion& server_version() //const ServerVersion sv(0,15,0); // JSON-92: API CHANGE. //const ServerVersion sv(0,15,1); // JSON-92 again: Change "keylist" in (MIME_)decrypt_message() from Out to InOutP. Is a compatible API change for JSON/JavaScript due to the handling of output parameters. :-) -#ifdef ENIGMAIL_2_0_COMPAT -//const ServerVersion sv(0,14,1); // JSON-97 : make MIME_decrypt_message() API-compatible with pre-JSON-92's changes for Enigmail 2.0 -//static const ServerVersion sv(0,14,3); // JSON-110: add encrypt_message_and_add_priv_key() -//static const ServerVersion sv(0,14,4); // JSON-117: add trust_own_key() -static const ServerVersion sv(0,14,5); // JSON-119: add get_key_rating_for_user() -#else //const ServerVersion sv(0,15,2); // JSON-93 InLength<> is a compatible API change, because length parameter is still there but ignored. :-) //static const ServerVersion sv(0,15,3); // JSON-110: add encrypt_message_and_add_priv_key() //static const ServerVersion sv(0,15,4); // JSON-117: add trust_own_key() -static const ServerVersion sv(0,15,5); // JSON-119: add get_key_rating_for_user() -#endif // ENIGMAIL_2_0_COMPAT +//static const ServerVersion sv(0,15,5); // JSON-119: add get_key_rating_for_user() +static const ServerVersion sv(0,16,0); // Kick-out Enigmail 2.0 compat, remove MIME_*() methods, deliverHandshakeResult() changes parameter types return sv; }