comparison mcabber/src/xmpp.c @ 1637:5f35d3573fe0

Accept an error as response to disco requests
author franky
date Sat, 24 Oct 2009 21:43:34 +0200
parents 81e2d8a9106b
children 73fc85ea0b4b
comparison
equal deleted inserted replaced
1635:a57f2634ee7c 1637:5f35d3573fe0
1242 static LmHandlerResult cb_caps(LmMessageHandler *h, LmConnection *c, 1242 static LmHandlerResult cb_caps(LmMessageHandler *h, LmConnection *c,
1243 LmMessage *m, gpointer user_data) 1243 LmMessage *m, gpointer user_data)
1244 { 1244 {
1245 char *ver = user_data; 1245 char *ver = user_data;
1246 1246
1247 caps_add(ver);
1247 if (lm_message_get_sub_type(m) == LM_MESSAGE_SUB_TYPE_ERROR) { 1248 if (lm_message_get_sub_type(m) == LM_MESSAGE_SUB_TYPE_ERROR) {
1248 display_server_error(lm_message_node_get_child(m->node, "error")); 1249 display_server_error(lm_message_node_get_child(m->node, "error"));
1249 } else if (lm_message_get_sub_type(m) == LM_MESSAGE_SUB_TYPE_RESULT) { 1250 } else if (lm_message_get_sub_type(m) == LM_MESSAGE_SUB_TYPE_RESULT) {
1250 LmMessageNode *info; 1251 LmMessageNode *info;
1251 LmMessageNode *query = lm_message_node_get_child(m->node, "query"); 1252 LmMessageNode *query = lm_message_node_get_child(m->node, "query");
1252 1253
1253 caps_add(ver);
1254 info = lm_message_node_get_child(query, "identity"); 1254 info = lm_message_node_get_child(query, "identity");
1255 if (info) 1255 if (info)
1256 caps_set_identity(ver, lm_message_node_get_attribute(info, "category"), 1256 caps_set_identity(ver, lm_message_node_get_attribute(info, "category"),
1257 lm_message_node_get_attribute(info, "name"), 1257 lm_message_node_get_attribute(info, "name"),
1258 lm_message_node_get_attribute(info, "type")); 1258 lm_message_node_get_attribute(info, "type"));