Mercurial > pidgin.yaz
comparison libpurple/protocols/msn/switchboard.c @ 24451:82452077f0db
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.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sun, 23 Nov 2008 22:40:18 +0000 |
parents | dc7942955a7a |
children | 15db3067a5ac 770f2f8a2c91 558baf33197e |
comparison
equal
deleted
inserted
replaced
24450:dc7942955a7a | 24451:82452077f0db |
---|---|
575 { | 575 { |
576 MsnCmdProc *cmdproc; | 576 MsnCmdProc *cmdproc; |
577 MsnTransaction *trans; | 577 MsnTransaction *trans; |
578 char *payload; | 578 char *payload; |
579 gsize payload_len; | 579 gsize payload_len; |
580 char flag; | |
580 | 581 |
581 g_return_if_fail(swboard != NULL); | 582 g_return_if_fail(swboard != NULL); |
582 g_return_if_fail(msg != NULL); | 583 g_return_if_fail(msg != NULL); |
583 | 584 |
584 cmdproc = swboard->cmdproc; | 585 cmdproc = swboard->cmdproc; |
588 #ifdef MSN_DEBUG_SB | 589 #ifdef MSN_DEBUG_SB |
589 purple_debug_info("msn", "SB length:{%" G_GSIZE_FORMAT "}", payload_len); | 590 purple_debug_info("msn", "SB length:{%" G_GSIZE_FORMAT "}", payload_len); |
590 msn_message_show_readable(msg, "SB SEND", FALSE); | 591 msn_message_show_readable(msg, "SB SEND", FALSE); |
591 #endif | 592 #endif |
592 | 593 |
594 flag = msn_message_get_flag(msg); | |
593 trans = msn_transaction_new(cmdproc, "MSG", "%c %" G_GSIZE_FORMAT, | 595 trans = msn_transaction_new(cmdproc, "MSG", "%c %" G_GSIZE_FORMAT, |
594 msn_message_get_flag(msg), payload_len); | 596 flag, payload_len); |
595 | 597 |
596 /* Data for callbacks */ | 598 /* Data for callbacks */ |
597 msn_transaction_set_data(trans, msg); | 599 msn_transaction_set_data(trans, msg); |
598 | 600 |
599 if (msg->type == MSN_MSG_TEXT) | 601 if (flag != 'U') { |
600 { | 602 if (msg->type == MSN_MSG_TEXT) |
601 msg->ack_ref = TRUE; | 603 { |
602 msn_message_ref(msg); | 604 msg->ack_ref = TRUE; |
603 swboard->ack_list = g_list_append(swboard->ack_list, msg); | 605 msn_message_ref(msg); |
604 msn_transaction_set_timeout_cb(trans, msg_timeout); | 606 swboard->ack_list = g_list_append(swboard->ack_list, msg); |
605 } | 607 msn_transaction_set_timeout_cb(trans, msg_timeout); |
606 else if (msg->type == MSN_MSG_SLP) | 608 } |
607 { | 609 else if (msg->type == MSN_MSG_SLP) |
608 msg->ack_ref = TRUE; | 610 { |
609 msn_message_ref(msg); | 611 msg->ack_ref = TRUE; |
610 swboard->ack_list = g_list_append(swboard->ack_list, msg); | 612 msn_message_ref(msg); |
611 msn_transaction_set_timeout_cb(trans, msg_timeout); | 613 swboard->ack_list = g_list_append(swboard->ack_list, msg); |
614 msn_transaction_set_timeout_cb(trans, msg_timeout); | |
612 #if 0 | 615 #if 0 |
613 if (msg->ack_cb != NULL) | 616 if (msg->ack_cb != NULL) |
614 { | 617 { |
615 msn_transaction_add_cb(trans, "ACK", msg_ack); | 618 msn_transaction_add_cb(trans, "ACK", msg_ack); |
616 msn_transaction_add_cb(trans, "NAK", msg_nak); | 619 msn_transaction_add_cb(trans, "NAK", msg_nak); |
620 } | |
621 #endif | |
617 } | 622 } |
618 #endif | |
619 } | 623 } |
620 | 624 |
621 trans->payload = payload; | 625 trans->payload = payload; |
622 trans->payload_len = payload_len; | 626 trans->payload_len = payload_len; |
623 | 627 |