pidgin: 70a6182c: Don't request an acknowledgement on an a...

qulogic at pidgin.im qulogic at pidgin.im
Sun Nov 23 17:45:41 EST 2008


-----------------------------------------------------------------
Revision: 70a6182c551a9b81c9b2110aa79d2f3b86ca49f1
Ancestor: 5ce546528e882ed89b8492478e931ba96fe07155
Author: qulogic at pidgin.im
Date: 2008-11-23T22:40:18
Branch: im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/70a6182c551a9b81c9b2110aa79d2f3b86ca49f1

Modified files:
        libpurple/protocols/msn/msn.c
        libpurple/protocols/msn/switchboard.c

ChangeLog: 

Don't request an acknowledgement on an auto-response message and don't set a
timeout to say that it was never received.

Fixes #6604.

-------------- next part --------------
============================================================
--- libpurple/protocols/msn/msn.c	da5afaf07071ad983139e1de06cbe681a2fbec69
+++ libpurple/protocols/msn/msn.c	8bc2a50c5b624babd3562ec8eaa2c9801005f867
@@ -1196,6 +1196,9 @@ msn_send_im(PurpleConnection *gc, const 
 		purple_debug_info("msn", "prepare to send online Message\n");
 		if (g_ascii_strcasecmp(who, username))
 		{
+			if (flags & PURPLE_MESSAGE_AUTO_RESP) {
+				msn_message_set_flag(msg, 'U');
+			}
 			if (msn_user_is_yahoo(account, who)) {
 				/*we send the online and offline Message to Yahoo User via UBM*/
 				purple_debug_info("msn", "send to Yahoo User\n");
============================================================
--- libpurple/protocols/msn/switchboard.c	2c06c39a2271dee94b565eb8eec6e9f4dfb96216
+++ libpurple/protocols/msn/switchboard.c	7a97c02db70c547f774794f7033bee831e012099
@@ -577,6 +577,7 @@ release_msg(MsnSwitchBoard *swboard, Msn
 	MsnTransaction *trans;
 	char *payload;
 	gsize payload_len;
+	char flag;
 
 	g_return_if_fail(swboard != NULL);
 	g_return_if_fail(msg     != NULL);
@@ -590,32 +591,35 @@ release_msg(MsnSwitchBoard *swboard, Msn
 	msn_message_show_readable(msg, "SB SEND", FALSE);
 #endif
 
+	flag = msn_message_get_flag(msg);
 	trans = msn_transaction_new(cmdproc, "MSG", "%c %" G_GSIZE_FORMAT,
-								msn_message_get_flag(msg), payload_len);
+								flag, payload_len);
 
 	/* Data for callbacks */
 	msn_transaction_set_data(trans, msg);
 
-	if (msg->type == MSN_MSG_TEXT)
-	{
-		msg->ack_ref = TRUE;
-		msn_message_ref(msg);
-		swboard->ack_list = g_list_append(swboard->ack_list, msg);
-		msn_transaction_set_timeout_cb(trans, msg_timeout);
-	}
-	else if (msg->type == MSN_MSG_SLP)
-	{
-		msg->ack_ref = TRUE;
-		msn_message_ref(msg);
-		swboard->ack_list = g_list_append(swboard->ack_list, msg);
-		msn_transaction_set_timeout_cb(trans, msg_timeout);
-#if 0
-		if (msg->ack_cb != NULL)
+	if (flag != 'U') {
+		if (msg->type == MSN_MSG_TEXT)
 		{
-			msn_transaction_add_cb(trans, "ACK", msg_ack);
-			msn_transaction_add_cb(trans, "NAK", msg_nak);
+			msg->ack_ref = TRUE;
+			msn_message_ref(msg);
+			swboard->ack_list = g_list_append(swboard->ack_list, msg);
+			msn_transaction_set_timeout_cb(trans, msg_timeout);
 		}
+		else if (msg->type == MSN_MSG_SLP)
+		{
+			msg->ack_ref = TRUE;
+			msn_message_ref(msg);
+			swboard->ack_list = g_list_append(swboard->ack_list, msg);
+			msn_transaction_set_timeout_cb(trans, msg_timeout);
+#if 0
+			if (msg->ack_cb != NULL)
+			{
+				msn_transaction_add_cb(trans, "ACK", msg_ack);
+				msn_transaction_add_cb(trans, "NAK", msg_nak);
+			}
 #endif
+		}
 	}
 
 	trans->payload = payload;


More information about the Commits mailing list