Browse Source

updating to new sync API

Volker Birk 6 years ago
parent
commit
5758fcd11e
  1. 4
      src/Makefile
  2. 4
      src/Makefile.conf
  3. 53
      src/basic_api.cc
  4. 2
      src/gen_cpp_Engine.ysl2
  5. 20
      src/gen_java_Engine.ysl2
  6. 13
      src/jniutils.cc
  7. 3
      src/jniutils.hh
  8. 18
      src/pEp.yml2
  9. 1
      src/types_c.ysl2

4
src/Makefile

@ -67,7 +67,7 @@ all: $(JAR) $(SHARED)
.PHONY: gensource
gensource: $(JAVA_SOURCES) $(C_SOURCES)
$(JAR): $(JAVA_SOURCES)
$(JAR): gensource
$(JP)/javac org/pEp/jniadapter/*.java
$(JP)/jar cf $@ org/pEp/jniadapter/*.class
@ -91,7 +91,7 @@ $(LIBRARY): org_pEp_jniadapter_AbstractEngine.o org_pEp_jniadapter_Engine.o org_
$(SHARED): $(LIBRARY)
$(CXX) *.o $(LDFLAGS) $(LDLIBS) -o $@
org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2
org/pEp/jniadapter/pEpException.java: pEp.yml2 gen_java_exceptions.ysl2 pEp.yml2
$(YML2_PROC) -y gen_java_exceptions.ysl2 $< -o $@
org/pEp/jniadapter/Message.java: pEp.yml2 gen_java_Message.ysl2 types_java.ysl2

4
src/Makefile.conf

@ -44,10 +44,10 @@ YML2_OPTS=--encoding=utf8
######### Engine #########
ENGINE_LIB=
ENGINE_LIB=-L$(HOME)/lib
#ENGINE_LIB=-L$(HOME)/local/lib
ENGINE_INC=
ENGINE_INC=-I$(HOME)/include
#ENGINE_INC=-I$(HOME)/local/inc

53
src/basic_api.cc

@ -278,59 +278,6 @@ JNIEXPORT jboolean JNICALL Java_org_pEp_jniadapter_Engine_blacklist_1is_1listed(
return (jboolean)_listed;
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_accept_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_ACCEPTED);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_reject_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_REJECTED);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT void JNICALL Java_org_pEp_jniadapter_Engine_cancel_1sync_1handshake(
JNIEnv *env,
jobject obj,
jobject ident
)
{
pEp_identity *_ident = to_identity(env, ident);
PEP_STATUS status =
::deliverHandshakeResult(session(), _ident, SYNC_HANDSHAKE_CANCEL);
if (status != PEP_STATUS_OK) {
throw_pEp_Exception(env, status);
return;
}
}
JNIEXPORT jbyteArray JNICALL Java_org_pEp_jniadapter_Engine_getCrashdumpLog(
JNIEnv *env,
jobject obj,

2
src/gen_cpp_Engine.ysl2

@ -222,7 +222,7 @@ tstylesheet {
choose {
when "$type = 'message'"
| message *_«$name» = (message *) callLongMethod(env, «$name», "getHandle");
when "$type='EncFormat'"
when "$type='EncFormat' or $type='SyncHandshakeResult'"
| √$type _«$name» = to_«$type»(env, «$name»);
when "$type='bool'"
| bool _«$name» = (bool) «$name»;

20
src/gen_java_Engine.ysl2

@ -70,6 +70,8 @@ tstylesheet {
> String
when "name(.) = 'identity'"
> Identity
when "name(.) = 'identitylist'"
> IdentityList
when "name(.) = 'bool'"
> Boolean
otherwise
@ -279,11 +281,17 @@ tstylesheet {
| ¡$type _«$name» = AbstractEngine.toUTF8(«$name»);
when "$type = 'identity'"
||
_Identity _«$name» = null;
if («$name» != null) {
_«$name» = new _Identity(«$name»);
}
||
_Identity _«$name» = null;
if («$name» != null) {
_«$name» = new _Identity(«$name»);
}
||
when "$type = 'identitylist'"
||
Vector<_Identity> _«$name» = new Vector<_Identity>();
for (Identity i : «$name»)
_«$name».add(new _Identity(i));
||
}
}
@ -306,7 +314,7 @@ tstylesheet {
const "type", "name(*[2])";
const "name" call "lcase" with "text", "name(*[3])";
if "$type = 'string' or $type = 'stringlist' or $type = 'identity'"
if "$type = 'string' or $type = 'stringlist' or $type = 'identity' or $type = 'identitylist'"
> _
> «$name»`if "position()!=last()" > , `
}

13
src/jniutils.cc

@ -688,7 +688,18 @@ namespace pEp {
env->DeleteLocalRef(clazz_enc_format);
return (PEP_enc_format) env->GetIntField(obj, field_value);
}
}
sync_handshake_result to_SyncHandshakeResult(JNIEnv *env, jobject obj)
{
static const char *classname = "org/pEp/jniadapter/Message$SyncHandshakeResult";
jclass clazz_enc_format = findClass(env, classname);
jfieldID field_value = env->GetFieldID(clazz_enc_format, "value", "I");
assert(field_value);
env->DeleteLocalRef(clazz_enc_format);
return (sync_handshake_result) env->GetIntField(obj, field_value);
}
};
};

3
src/jniutils.hh

@ -8,6 +8,7 @@
#include <pEp/identity_list.h>
#include <pEp/bloblist.h>
#include <pEp/message.h>
#include <pEp/sync_api.h>
#if 0 // Enable if log needed
#include <android/log.h>
@ -90,6 +91,8 @@ namespace pEp {
bloblist_t *to_bloblist(JNIEnv *env, jobject obj);
PEP_enc_format to_EncFormat(JNIEnv *env, jobject obj);
sync_handshake_result to_SyncHandshakeResult(JNIEnv *env, jobject obj);
};
};

18
src/pEp.yml2

@ -267,12 +267,17 @@ namespace pEp {
returns string languagelist
);
method key_reset(
in string fpr,
in identity ident
);
method key_reset(
in string fpr,
in identity ident
);
method deliverHandshakeResult(
in SyncHandshakeResult shr,
in identitylist identities
);
basic string trustwords(identity ident);
basic string trustwords(identity ident);
basic identity myself(identity ident);
basic identity updateIdentity(identity ident);
basic identity setOwnKey(identity ident, string fpr);
@ -285,9 +290,6 @@ namespace pEp {
basic bool blacklist_is_listed(string fpr);
basic void config_passive_mode(bool enable);
basic void config_unencrypted_subject(bool enable);
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);
};

1
src/types_c.ysl2

@ -15,6 +15,7 @@ function "toC" {
when "$type='DecryptFlags'" > PEP_decrypt_flags_t
when "$type='Color'" > PEP_color
when "$type='Rating'" > PEP_rating
when "$type='SyncHandshakeResult'" > sync_handshake_result
otherwise value "$type";
}

Loading…
Cancel
Save