From 39a1ee0b18f0fced6d7bc293cc9a46ea70ec9e96 Mon Sep 17 00:00:00 2001 From: David Baker Date: Tue, 1 Oct 2019 11:14:16 +0100 Subject: Add olm_session_describe As a way to dump the state of an olm session, ie. the chain indicies, so we can debug why olm sessions break and get out of sync. --- javascript/olm_post.js | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'javascript/olm_post.js') diff --git a/javascript/olm_post.js b/javascript/olm_post.js index ad058d9..c0498db 100644 --- a/javascript/olm_post.js +++ b/javascript/olm_post.js @@ -459,6 +459,13 @@ Session.prototype['decrypt'] = restore_stack(function( }); +Session.prototype['describe'] = restore_stack(function() { + var description_buf = session_method(Module['_olm_session_describe'])( + this.ptr + ); + return UTF8ToString(description_buf); +}); + function Utility() { var size = Module['_olm_utility_size'](); this.buf = malloc(size); -- cgit v1.2.3 From b482321213e6e896d0981c266bed12f4e1f67441 Mon Sep 17 00:00:00 2001 From: David Baker Date: Fri, 4 Oct 2019 11:43:40 +0100 Subject: Pass in a buffer to olm_session_describe instead of having a static one, as that could end up taking up a lot of memory if your app keeps olm sessions hanging about. --- javascript/olm_post.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'javascript/olm_post.js') diff --git a/javascript/olm_post.js b/javascript/olm_post.js index c0498db..e204f30 100644 --- a/javascript/olm_post.js +++ b/javascript/olm_post.js @@ -460,10 +460,16 @@ Session.prototype['decrypt'] = restore_stack(function( }); Session.prototype['describe'] = restore_stack(function() { - var description_buf = session_method(Module['_olm_session_describe'])( - this.ptr - ); - return UTF8ToString(description_buf); + var description_buf; + try { + description_buf = malloc(256); + session_method(Module['_olm_session_describe'])( + this.ptr, description_buf, 256 + ); + return UTF8ToString(description_buf); + } finally { + if (description_buf !== undefined) free(description_buf); + } }); function Utility() { -- cgit v1.2.3