Mercurial > pidgin
comparison libpurple/server.c @ 32819:2c6510167895 default tip
propagate from branch 'im.pidgin.pidgin.2.x.y' (head 3315c5dfbd0ad16511bdcf865e5b07c02d07df24)
to branch 'im.pidgin.pidgin' (head cbd1eda6bcbf0565ae7766396bb8f6f419cb6a9a)
| author | Elliott Sales de Andrade <qulogic@pidgin.im> |
|---|---|
| date | Sat, 02 Jun 2012 02:30:49 +0000 |
| parents | 2ec94166be43 |
| children |
comparison
equal
deleted
inserted
replaced
| 32818:01ff09d4a463 | 32819:2c6510167895 |
|---|---|
| 147 /* | 147 /* |
| 148 * XXX - If "only auto-reply when away & idle" is set, then shouldn't | 148 * XXX - If "only auto-reply when away & idle" is set, then shouldn't |
| 149 * this only reset lar->sent if we're away AND idle? | 149 * this only reset lar->sent if we're away AND idle? |
| 150 */ | 150 */ |
| 151 auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); | 151 auto_reply_pref = purple_prefs_get_string("/purple/away/auto_reply"); |
| 152 if((gc->flags & PURPLE_CONNECTION_AUTO_RESP) && | 152 if((purple_connection_get_flags(gc) & PURPLE_CONNECTION_AUTO_RESP) && |
| 153 !purple_presence_is_available(presence) && | 153 !purple_presence_is_available(presence) && |
| 154 !purple_strequal(auto_reply_pref, "never")) { | 154 !purple_strequal(auto_reply_pref, "never")) { |
| 155 | 155 |
| 156 struct last_auto_response *lar; | 156 struct last_auto_response *lar; |
| 157 lar = get_last_auto_response(gc, name); | 157 lar = get_last_auto_response(gc, name); |
| 321 } else { | 321 } else { |
| 322 attn = NULL; | 322 attn = NULL; |
| 323 } | 323 } |
| 324 | 324 |
| 325 return attn; | 325 return attn; |
| 326 } | |
| 327 | |
| 328 void | |
| 329 serv_send_attention(PurpleConnection *gc, const char *who, guint type_code) | |
| 330 { | |
| 331 purple_prpl_send_attention(gc, who, type_code); | |
| 332 } | |
| 333 | |
| 334 void | |
| 335 serv_got_attention(PurpleConnection *gc, const char *who, guint type_code) | |
| 336 { | |
| 337 purple_prpl_got_attention(gc, who, type_code); | |
| 338 } | 326 } |
| 339 | 327 |
| 340 | 328 |
| 341 /* | 329 /* |
| 342 * Move a buddy from one group to another on server. | 330 * Move a buddy from one group to another on server. |
| 580 | 568 |
| 581 /* | 569 /* |
| 582 * We should update the conversation window buttons and menu, | 570 * We should update the conversation window buttons and menu, |
| 583 * if it exists. | 571 * if it exists. |
| 584 */ | 572 */ |
| 585 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, gc->account); | 573 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, who, purple_connection_get_account(gc)); |
| 586 | 574 |
| 587 /* | 575 /* |
| 588 * Make copies of the message and the sender in case plugins want | 576 * Make copies of the message and the sender in case plugins want |
| 589 * to free these strings and replace them with a modifed version. | 577 * to free these strings and replace them with a modifed version. |
| 590 */ | 578 */ |
| 591 buffy = g_strdup(msg); | 579 buffy = g_strdup(msg); |
| 592 angel = g_strdup(who); | 580 angel = g_strdup(who); |
| 593 | 581 |
| 594 plugin_return = GPOINTER_TO_INT( | 582 plugin_return = GPOINTER_TO_INT( |
| 595 purple_signal_emit_return_1(purple_conversations_get_handle(), | 583 purple_signal_emit_return_1(purple_conversations_get_handle(), |
| 596 "receiving-im-msg", gc->account, | 584 "receiving-im-msg", purple_connection_get_account(gc), |
| 597 &angel, &buffy, conv, &flags)); | 585 &angel, &buffy, conv, &flags)); |
| 598 | 586 |
| 599 if (!buffy || !angel || plugin_return) { | 587 if (!buffy || !angel || plugin_return) { |
| 600 g_free(buffy); | 588 g_free(buffy); |
| 601 g_free(angel); | 589 g_free(angel); |
| 603 } | 591 } |
| 604 | 592 |
| 605 name = angel; | 593 name = angel; |
| 606 message = buffy; | 594 message = buffy; |
| 607 | 595 |
| 608 purple_signal_emit(purple_conversations_get_handle(), "received-im-msg", gc->account, | 596 purple_signal_emit(purple_conversations_get_handle(), "received-im-msg", purple_connection_get_account(gc), |
| 609 name, message, conv, flags); | 597 name, message, conv, flags); |
| 610 | 598 |
| 611 /* search for conversation again in case it was created by received-im-msg handler */ | 599 /* search for conversation again in case it was created by received-im-msg handler */ |
| 612 if (conv == NULL) | 600 if (conv == NULL) |
| 613 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); | 601 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, purple_connection_get_account(gc)); |
| 614 | 602 |
| 615 if (conv == NULL) | 603 if (conv == NULL) |
| 616 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); | 604 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, name); |
| 617 | 605 |
| 618 purple_conv_im_write(PURPLE_CONV_IM(conv), name, message, flags, mtime); | 606 purple_conv_im_write(PURPLE_CONV_IM(conv), name, message, flags, mtime); |
| 625 * - we are available | 613 * - we are available |
| 626 * - or it's disabled | 614 * - or it's disabled |
| 627 * - or we're not idle and the 'only auto respond if idle' pref | 615 * - or we're not idle and the 'only auto respond if idle' pref |
| 628 * is set | 616 * is set |
| 629 */ | 617 */ |
| 630 if (gc->flags & PURPLE_CONNECTION_AUTO_RESP) | 618 if (purple_connection_get_flags(gc) & PURPLE_CONNECTION_AUTO_RESP) |
| 631 { | 619 { |
| 632 PurplePresence *presence; | 620 PurplePresence *presence; |
| 633 PurpleStatus *status; | 621 PurpleStatus *status; |
| 634 PurpleStatusType *status_type; | 622 PurpleStatusType *status_type; |
| 635 PurpleStatusPrimitive primitive; | 623 PurpleStatusPrimitive primitive; |
| 698 void serv_got_typing(PurpleConnection *gc, const char *name, int timeout, | 686 void serv_got_typing(PurpleConnection *gc, const char *name, int timeout, |
| 699 PurpleTypingState state) { | 687 PurpleTypingState state) { |
| 700 PurpleConversation *conv; | 688 PurpleConversation *conv; |
| 701 PurpleConvIm *im = NULL; | 689 PurpleConvIm *im = NULL; |
| 702 | 690 |
| 703 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); | 691 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, purple_connection_get_account(gc)); |
| 704 if (conv != NULL) { | 692 if (conv != NULL) { |
| 705 im = PURPLE_CONV_IM(conv); | 693 im = PURPLE_CONV_IM(conv); |
| 706 | 694 |
| 707 purple_conv_im_set_typing_state(im, state); | 695 purple_conv_im_set_typing_state(im, state); |
| 708 } else { | 696 } else { |
| 709 switch (state) | 697 switch (state) |
| 710 { | 698 { |
| 711 case PURPLE_TYPING: | 699 case PURPLE_TYPING: |
| 712 purple_signal_emit(purple_conversations_get_handle(), | 700 purple_signal_emit(purple_conversations_get_handle(), |
| 713 "buddy-typing", gc->account, name); | 701 "buddy-typing", purple_connection_get_account(gc), name); |
| 714 break; | 702 break; |
| 715 case PURPLE_TYPED: | 703 case PURPLE_TYPED: |
| 716 purple_signal_emit(purple_conversations_get_handle(), | 704 purple_signal_emit(purple_conversations_get_handle(), |
| 717 "buddy-typed", gc->account, name); | 705 "buddy-typed", purple_connection_get_account(gc), name); |
| 718 break; | 706 break; |
| 719 case PURPLE_NOT_TYPING: | 707 case PURPLE_NOT_TYPING: |
| 720 purple_signal_emit(purple_conversations_get_handle(), | 708 purple_signal_emit(purple_conversations_get_handle(), |
| 721 "buddy-typing-stopped", gc->account, name); | 709 "buddy-typing-stopped", purple_connection_get_account(gc), name); |
| 722 break; | 710 break; |
| 723 } | 711 } |
| 724 } | 712 } |
| 725 | 713 |
| 726 if (conv != NULL && timeout > 0) | 714 if (conv != NULL && timeout > 0) |
| 730 void serv_got_typing_stopped(PurpleConnection *gc, const char *name) { | 718 void serv_got_typing_stopped(PurpleConnection *gc, const char *name) { |
| 731 | 719 |
| 732 PurpleConversation *conv; | 720 PurpleConversation *conv; |
| 733 PurpleConvIm *im; | 721 PurpleConvIm *im; |
| 734 | 722 |
| 735 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, gc->account); | 723 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, name, purple_connection_get_account(gc)); |
| 736 if (conv != NULL) | 724 if (conv != NULL) |
| 737 { | 725 { |
| 738 im = PURPLE_CONV_IM(conv); | 726 im = PURPLE_CONV_IM(conv); |
| 739 | 727 |
| 740 if (im->typing_state == PURPLE_NOT_TYPING) | 728 if (purple_conv_im_get_typing_state(im) == PURPLE_NOT_TYPING) |
| 741 return; | 729 return; |
| 742 | 730 |
| 743 purple_conv_im_stop_typing_timeout(im); | 731 purple_conv_im_stop_typing_timeout(im); |
| 744 purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING); | 732 purple_conv_im_set_typing_state(im, PURPLE_NOT_TYPING); |
| 745 } | 733 } |
| 746 else | 734 else |
| 747 { | 735 { |
| 748 purple_signal_emit(purple_conversations_get_handle(), | 736 purple_signal_emit(purple_conversations_get_handle(), |
| 749 "buddy-typing-stopped", gc->account, name); | 737 "buddy-typing-stopped", purple_connection_get_account(gc), name); |
| 750 } | 738 } |
| 751 } | 739 } |
| 752 | 740 |
| 753 struct chat_invite_data { | 741 struct chat_invite_data { |
| 754 PurpleConnection *gc; | 742 PurpleConnection *gc; |
| 935 buffy = g_strdup(message); | 923 buffy = g_strdup(message); |
| 936 angel = g_strdup(who); | 924 angel = g_strdup(who); |
| 937 | 925 |
| 938 plugin_return = GPOINTER_TO_INT( | 926 plugin_return = GPOINTER_TO_INT( |
| 939 purple_signal_emit_return_1(purple_conversations_get_handle(), | 927 purple_signal_emit_return_1(purple_conversations_get_handle(), |
| 940 "receiving-chat-msg", g->account, | 928 "receiving-chat-msg", purple_connection_get_account(g), |
| 941 &angel, &buffy, conv, &flags)); | 929 &angel, &buffy, conv, &flags)); |
| 942 | 930 |
| 943 if (!buffy || !angel || plugin_return) { | 931 if (!buffy || !angel || plugin_return) { |
| 944 g_free(buffy); | 932 g_free(buffy); |
| 945 g_free(angel); | 933 g_free(angel); |
| 947 } | 935 } |
| 948 | 936 |
| 949 who = angel; | 937 who = angel; |
| 950 message = buffy; | 938 message = buffy; |
| 951 | 939 |
| 952 purple_signal_emit(purple_conversations_get_handle(), "received-chat-msg", g->account, | 940 purple_signal_emit(purple_conversations_get_handle(), "received-chat-msg", purple_connection_get_account(g), |
| 953 who, message, conv, flags); | 941 who, message, conv, flags); |
| 954 | 942 |
| 955 purple_conv_chat_write(chat, who, message, flags, mtime); | 943 purple_conv_chat_write(chat, who, message, flags, mtime); |
| 956 | 944 |
| 957 g_free(angel); | 945 g_free(angel); |
