about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorPaul Fariello <paul@fariello.eu>2019-04-01 13:42:24 +0200
committerPaul Fariello <paul@fariello.eu>2019-04-10 17:23:46 +0200
commit65b3f82c5f40e26b384d734a3d1206c09bf45ba5 (patch)
tree6951f420f6043dfaaadde86b2cc468ed59ed873c /src
parent898302243e2890c0d2ffc6c48451718e43a85d23 (diff)
downloadprofani-tty-65b3f82c5f40e26b384d734a3d1206c09bf45ba5.tar.gz
Fix devicelist notification handler
devicelist handler should be kept after trigger
Diffstat (limited to 'src')
-rw-r--r--src/xmpp/message.c3
-rw-r--r--src/xmpp/omemo.c8
2 files changed, 5 insertions, 6 deletions
diff --git a/src/xmpp/message.c b/src/xmpp/message.c
index bc91ef3b..2a6ad234 100644
--- a/src/xmpp/message.c
+++ b/src/xmpp/message.c
@@ -142,7 +142,6 @@ _message_handler(xmpp_conn_t *const conn, xmpp_stanza_t *const stanza, void *con
                 if (handler) {
                     int keep = handler->func(stanza, handler->userdata);
                     if (!keep) {
-                        free(handler);
                         g_hash_table_remove(pubsub_event_handlers, node);
                     }
                 }
@@ -176,7 +175,7 @@ message_handlers_init(void)
         g_hash_table_destroy(pubsub_event_handlers);
     }
 
-    pubsub_event_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, free, NULL);
+    pubsub_event_handlers = g_hash_table_new_full(g_str_hash, g_str_equal, free, free);
 }
 
 void
diff --git a/src/xmpp/omemo.c b/src/xmpp/omemo.c
index c8ac7ed5..8c8d56e0 100644
--- a/src/xmpp/omemo.c
+++ b/src/xmpp/omemo.c
@@ -337,19 +337,19 @@ _omemo_receive_devicelist(xmpp_stanza_t *const stanza, void *const userdata)
     }
 
     if (!root) {
-        return 0;
+        return 1;
     }
 
     xmpp_stanza_t *items = xmpp_stanza_get_child_by_name(root, "items");
     if (!items) {
-        return 0;
+        return 1;
     }
 
     xmpp_stanza_t *item = xmpp_stanza_get_child_by_name(items, "item");
     if (item) {
         xmpp_stanza_t *list = xmpp_stanza_get_child_by_ns(item, STANZA_NS_OMEMO);
         if (!list) {
-            return 0;
+            return 1;
         }
 
         xmpp_stanza_t *device;
@@ -360,7 +360,7 @@ _omemo_receive_devicelist(xmpp_stanza_t *const stanza, void *const userdata)
     }
     omemo_set_device_list(from, device_list);
 
-    return 0;
+    return 1;
 }
 
 static int