diff options
author | John Bailey <rekkanoryo@rekkanoryo.org> | 2008-11-25 17:02:37 +0000 |
---|---|---|
committer | John Bailey <rekkanoryo@rekkanoryo.org> | 2008-11-25 17:02:37 +0000 |
commit | db7064a245a027eea08749f241a7b435175c2f96 (patch) | |
tree | f3e52bb4bc3541dfaa71c351284514e638450a2e /libpurple/protocols/msn/switchboard.c | |
parent | 3ddfe86925dbe3e0da1410aeda74d54242cb7787 (diff) | |
parent | 584e1326d2fea19d6e3afcc12536794e1d0ce43f (diff) | |
download | pidgin-db7064a245a027eea08749f241a7b435175c2f96.tar.gz |
propagate from branch 'im.pidgin.pidgin' (head 48d838a2e5801782bbc6719b1209e8c932871436)
to branch 'im.pidgin.cpw.rekkanoryo.icqxstatus' (head 9374b413e29099439bfdaf519f9090e4d440b02b)
Diffstat (limited to 'libpurple/protocols/msn/switchboard.c')
-rw-r--r-- | libpurple/protocols/msn/switchboard.c | 42 |
1 files changed, 23 insertions, 19 deletions
diff --git a/libpurple/protocols/msn/switchboard.c b/libpurple/protocols/msn/switchboard.c index 1d3cfcad6d..6797e7a35d 100644 --- a/libpurple/protocols/msn/switchboard.c +++ b/libpurple/protocols/msn/switchboard.c @@ -577,6 +577,7 @@ release_msg(MsnSwitchBoard *swboard, MsnMessage *msg) 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, MsnMessage *msg) 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; @@ -806,7 +810,7 @@ static void ubm_cmd(MsnCmdProc *cmdproc, MsnCommand *cmd) { purple_debug_misc("msn", "get UBM...\n"); - cmd->payload_len = atoi(cmd->params[4]); + cmd->payload_len = atoi(cmd->params[3]); cmdproc->last_cmd->payload_cb = msg_cmd_post; } |