comparison mcabber/src/xmpp.c @ 1644:73fc85ea0b4b

Do not send disco requests to offline resources
author Mikael Berthe <mikael@lilotux.net>
date Tue, 03 Nov 2009 22:38:02 +0100
parents 5f35d3573fe0
children 472cd6ac20fa
comparison
equal deleted inserted replaced
1643:8c0e173d7d6a 1644:73fc85ea0b4b
1276 enum imstatus ust; 1276 enum imstatus ust;
1277 char bpprio; 1277 char bpprio;
1278 time_t timestamp = 0L; 1278 time_t timestamp = 0L;
1279 LmMessageNode *muc_packet, *caps; 1279 LmMessageNode *muc_packet, *caps;
1280 1280
1281 //Check for MUC presence packet 1281 // Check for MUC presence packet
1282 muc_packet = lm_message_node_find_xmlns 1282 muc_packet = lm_message_node_find_xmlns
1283 (m->node, "http://jabber.org/protocol/muc#user"); 1283 (m->node, "http://jabber.org/protocol/muc#user");
1284 1284
1285 from = lm_message_get_from(m); 1285 from = lm_message_get_from(m);
1286 1286
1357 ustmsg = ""; // Some clients omit the <status/> element :-( 1357 ustmsg = ""; // Some clients omit the <status/> element :-(
1358 check_signature(r, rname, lm_message_node_find_xmlns(m->node, NS_SIGNED), 1358 check_signature(r, rname, lm_message_node_find_xmlns(m->node, NS_SIGNED),
1359 ustmsg); 1359 ustmsg);
1360 } 1360 }
1361 1361
1362 //XEP-0115 Entity Capabilities 1362 // XEP-0115 Entity Capabilities
1363 caps = lm_message_node_find_xmlns(m->node, NS_CAPS); 1363 caps = lm_message_node_find_xmlns(m->node, NS_CAPS);
1364 if (caps) { 1364 if (caps && ust != offline) {
1365 const char *ver = lm_message_node_get_attribute(caps, "ver"); 1365 const char *ver = lm_message_node_get_attribute(caps, "ver");
1366 GSList *sl_buddy = NULL; 1366 GSList *sl_buddy = NULL;
1367 if (rname) 1367 if (rname)
1368 sl_buddy = roster_find(r, jidsearch, ROSTER_TYPE_USER); 1368 sl_buddy = roster_find(r, jidsearch, ROSTER_TYPE_USER);
1369 //only cache the caps if the user is on the roster 1369 // Only cache the caps if the user is on the roster
1370 if (sl_buddy && buddy_getonserverflag(sl_buddy->data)) { 1370 if (sl_buddy && buddy_getonserverflag(sl_buddy->data)) {
1371 buddy_resource_setcaps(sl_buddy->data, rname, ver); 1371 buddy_resource_setcaps(sl_buddy->data, rname, ver);
1372 1372
1373 if (!caps_has_hash(ver)) { 1373 if (!caps_has_hash(ver)) {
1374 char *node; 1374 char *node;