554 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
554 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
555 |
555 |
556 r = lm_message_new_iq_from_query(m, LM_MESSAGE_SUB_TYPE_RESULT); |
556 r = lm_message_new_iq_from_query(m, LM_MESSAGE_SUB_TYPE_RESULT); |
557 query = lm_message_node_add_child(r->node, "query", NULL); |
557 query = lm_message_node_add_child(r->node, "query", NULL); |
558 lm_message_node_set_attribute(query, "xmlns", NS_DISCO_INFO); |
558 lm_message_node_set_attribute(query, "xmlns", NS_DISCO_INFO); |
559 tmp = lm_message_node_find_child(m->node, "query"); |
559 tmp = lm_message_node_get_child(m->node, "query"); |
560 if (tmp) { |
560 if (tmp) { |
561 node = lm_message_node_get_attribute(tmp, "node"); |
561 node = lm_message_node_get_attribute(tmp, "node"); |
562 param = node+strlen(MCABBER_CAPS_NODE)+1; |
562 param = node+strlen(MCABBER_CAPS_NODE)+1; |
563 } |
563 } |
564 if (node && startswith(node, MCABBER_CAPS_NODE "#", FALSE)) |
564 if (node && startswith(node, MCABBER_CAPS_NODE "#", FALSE)) |
594 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
594 return LM_HANDLER_RESULT_REMOVE_MESSAGE; |
595 } |
595 } |
596 g_free(servername); |
596 g_free(servername); |
597 } |
597 } |
598 |
598 |
599 y = lm_message_node_find_child(lm_message_node_find_xmlns(m->node, NS_ROSTER), |
599 y = lm_message_node_get_child(lm_message_node_find_xmlns(m->node, NS_ROSTER), |
600 "item"); |
600 "item"); |
601 for ( ; y; y = y->next) { |
601 for ( ; y; y = y->next) { |
602 char *name_tmp = NULL; |
602 char *name_tmp = NULL; |
603 |
603 |
604 fjid = lm_message_node_get_attribute(y, "jid"); |
604 fjid = lm_message_node_get_attribute(y, "jid"); |
605 name = lm_message_node_get_attribute(y, "name"); |
605 name = lm_message_node_get_attribute(y, "name"); |
606 sub = lm_message_node_get_attribute(y, "subscription"); |
606 sub = lm_message_node_get_attribute(y, "subscription"); |
607 ask = lm_message_node_get_attribute(y, "ask"); |
607 ask = lm_message_node_get_attribute(y, "ask"); |
608 |
608 |
609 if (lm_message_node_find_child(y, "group")) |
609 if (lm_message_node_get_child(y, "group")) |
610 group = lm_message_node_get_value(lm_message_node_find_child(y, "group")); |
610 group = lm_message_node_get_value(lm_message_node_get_child(y, "group")); |
611 else |
611 else |
612 group = NULL; |
612 group = NULL; |
613 |
613 |
614 if (!fjid) |
614 if (!fjid) |
615 continue; |
615 continue; |