avatar.c
changeset 9 a838a4ecf834
parent 6 a0231d43ae53
child 11 2f9ffa1c24c5
equal deleted inserted replaced
8:e7dcbcbb8dbc 9:a838a4ecf834
   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 	{