about summary refs log tree commit diff stats
path: root/src/xmpp/presence.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xmpp/presence.c')
-rw-r--r--src/xmpp/presence.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/xmpp/presence.c b/src/xmpp/presence.c
index 963815a8..5acec9da 100644
--- a/src/xmpp/presence.c
+++ b/src/xmpp/presence.c
@@ -507,22 +507,26 @@ _handle_caps(char *jid, XMPPCaps *caps)
         log_info("Hash %s supported", caps->hash);
         if (caps->ver) {
             if (caps_contains(caps->ver)) {
-                log_info("Capabilities cached: %s", caps->ver);
-                caps_map(jid, caps->ver);
+                log_info("Capabilities cache hit: %s, for %s.", caps->ver, jid);
+                caps_map_jid_to_ver(jid, caps->ver);
             } else {
-                log_info("Capabilities not cached: %s, sending service discovery request", caps->ver);
+                log_info("Capabilities cache miss: %s, for %s, sending service discovery request", caps->ver, jid);
                 char *id = create_unique_id("caps");
                 iq_send_caps_request(jid, id, caps->node, caps->ver);
                 free(id);
             }
         }
 
-    // no hash, or not supported
+    // unsupported hash
     } else if (caps->hash) {
-        log_info("Hash %s not supported, not sending service discovery request", caps->hash);
-        // send service discovery request, cache against from full jid
+        log_info("Hash %s not supported: %s, sending service discovery request", caps->hash, jid);
+        char *id = create_unique_id("caps");
+        iq_send_caps_request_for_jid(jid, id, caps->node, caps->ver);
+        free(id);
+
+    // no hash
     } else {
-        log_info("No hash specified, not sending service discovery request");
+        log_info("No hash specified: %s, not sending service discovery request", jid);
         // do legacy
     }
 }