diff --git a/src/basic_api.cc b/src/basic_api.cc index 6884f25..76cdea5 100644 --- a/src/basic_api.cc +++ b/src/basic_api.cc @@ -320,5 +320,27 @@ JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_cancel_sync_1handshake( } } +JNIEXPORT jbyteArray JNICALL Java_org_pEp_jniadapter_Engine_getCrashdumpLog( + JNIEnv *env, + jobject obj, + jint maxlines + ) +{ + PEP_SESSION session = (PEP_SESSION) callLongMethod(env, obj, "getHandle"); + + int _maxlines = (int) maxlines; + char *_logdata; + + PEP_STATUS status = ::get_crashdump_log(session, _maxlines, &_logdata); + if ((status > PEP_STATUS_OK && status < PEP_UNENCRYPTED) || + status < PEP_STATUS_OK || + status >= PEP_TRUSTWORD_NOT_FOUND) { + throw_pEp_Exception(env, status); + return NULL; + } + + return from_string(env, _logdata); +} + } // extern "C" diff --git a/src/gen_java_Engine.ysl2 b/src/gen_java_Engine.ysl2 index 499f625..54ee9ff 100644 --- a/src/gen_java_Engine.ysl2 +++ b/src/gen_java_Engine.ysl2 @@ -43,6 +43,8 @@ tstylesheet { |> «$pitype» _«$pname» = «$pname».getBytes(); when "$ptype = 'bool'" |> «$pitype» _«$pname» = «$pname».booleanValue(); + when "$ptype = 'int'" + |> «$pitype» _«$pname» = «$pname»; when "ancestor::namespace/child::enum[@name=$ptype]" |> «$pitype» _«$pname» = «$pname».value; otherwise diff --git a/src/pEp.yml2 b/src/pEp.yml2 index d4871d9..beab2e9 100644 --- a/src/pEp.yml2 +++ b/src/pEp.yml2 @@ -218,6 +218,7 @@ namespace pEp { basic void accept_sync_handshake(identity ident); basic void reject_sync_handshake(identity ident); basic void cancel_sync_handshake(identity ident); + basic string getCrashdumpLog(int maxlines); };