From 2e9021c2e73786e9045c0634c43efa86f18ac8de Mon Sep 17 00:00:00 2001 From: Richard van der Hoff Date: Sun, 4 Sep 2016 23:34:24 +0100 Subject: [PATCH] OlmSession.has_received_message I find myself wanting to know if an OlmSession is in the pre-key state or not, to help debugging at the application level. --- include/olm/olm.h | 4 ++++ javascript/olm_post.js | 7 +++++++ src/olm.cpp | 6 ++++++ 3 files changed, 17 insertions(+) diff --git a/include/olm/olm.h b/include/olm/olm.h index 0886fa9..81b6602 100644 --- a/include/olm/olm.h +++ b/include/olm/olm.h @@ -300,6 +300,10 @@ size_t olm_session_id( void * id, size_t id_length ); +int olm_session_has_received_message( + OlmSession *session +); + /** Checks if the PRE_KEY message is for this in-bound session. This can happen * if multiple messages are sent to this account before this account sends a * message in reply. Returns olm_error() on failure. If the base64 diff --git a/javascript/olm_post.js b/javascript/olm_post.js index 955d68d..6c99030 100644 --- a/javascript/olm_post.js +++ b/javascript/olm_post.js @@ -263,6 +263,13 @@ Session.prototype['session_id'] = restore_stack(function() { return Pointer_stringify(id_buffer); }); +Session.prototype['has_received_message'] = function() { + return session_method(Module['_olm_session_has_received_message'])( + this.ptr + ) ? true : false; +}; + + Session.prototype['matches_inbound'] = restore_stack(function( one_time_key_message ) { diff --git a/src/olm.cpp b/src/olm.cpp index 682a84c..7f68ad0 100644 --- a/src/olm.cpp +++ b/src/olm.cpp @@ -529,6 +529,12 @@ size_t olm_session_id( } +int olm_session_has_received_message( + OlmSession * session +) { + return from_c(session)->received_message; +} + size_t olm_matches_inbound_session( OlmSession * session, void * one_time_key_message, size_t message_length