559 |
559 |
560 { // check if file exists to not trigger unnecessary error messages |
560 { // check if file exists to not trigger unnecessary error messages |
561 struct stat buf; |
561 struct stat buf; |
562 |
562 |
563 if (stat (file, &buf) == -1) { |
563 if (stat (file, &buf) == -1) { |
564 gchar *bjid = jidtodisp (jid); |
564 gchar *bjid = jidtodisp (jid); |
565 LmMessage *request; |
565 LmMessage *request; |
566 LmMessageNode *node; |
566 LmMessageNode *node; |
567 LmMessageHandler *dhandler; |
|
568 |
567 |
569 scr_WriteIncomingMessage (bjid, "No avatar for this buddy yet, sending request.", 0, HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG, 0); // NO conversion from utf-8 |
568 scr_WriteIncomingMessage (bjid, "No avatar for this buddy yet, sending request.", 0, HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG, 0); // NO conversion from utf-8 |
570 |
569 |
571 // create data request |
570 // create data request |
572 request = lm_message_new_with_sub_type (bjid, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_GET); |
571 request = lm_message_new_with_sub_type (bjid, LM_MESSAGE_TYPE_IQ, LM_MESSAGE_SUB_TYPE_GET); |
575 |
574 |
576 node = lm_message_node_add_child (node, "pubsub", NULL); |
575 node = lm_message_node_add_child (node, "pubsub", NULL); |
577 lm_message_node_set_attribute (node, "xmlns", NS_PUBSUB); |
576 lm_message_node_set_attribute (node, "xmlns", NS_PUBSUB); |
578 |
577 |
579 node = lm_message_node_add_child (node, "items", NULL); |
578 node = lm_message_node_add_child (node, "items", NULL); |
580 lm_message_node_set_attribute (node, "node", NS_AVATAR_DATA); |
579 lm_message_node_set_attribute (node, "node", NS_AVATAR_METADATA); |
581 |
580 |
582 node = lm_message_node_add_child (node, "item", NULL); |
581 // send, result will be handled by pep |
583 |
582 lm_connection_send (lconnection, request, NULL); |
584 // create handler |
583 |
585 dhandler = lm_message_handler_new (avatar_retrieve_data_reply_handler, bjid, g_free); |
|
586 reply_handlers = g_slist_append (reply_handlers, dhandler); |
|
587 |
|
588 // send |
|
589 lm_connection_send_with_reply (lconnection, request, dhandler, NULL); |
|
590 |
|
591 lm_message_handler_unref (dhandler); |
|
592 lm_message_unref (request); |
584 lm_message_unref (request); |
593 // bjid will be freed on handler destruction |
585 g_free (bjid); |
594 return TRUE; |
586 return TRUE; |
595 } |
587 } |
596 } |
588 } |
597 |
589 |
598 { |
590 { |