Mercurial > ~mikael > mcabber > hg
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; |