libpurple/protocols/jabber/libxmpp.c

Sun, 11 Aug 2013 05:34:39 +0530

author
Ankit Vani <a@nevitus.org>
date
Sun, 11 Aug 2013 05:34:39 +0530
branch
soc.2013.gobjectification.plugins
changeset 36504
a0e5e2e8c219
parent 36497
c542ad807256
child 36505
60c161851325
permissions
-rw-r--r--

Use PurplePluginProtocolInfo instead of PurplePlugin as handles in jabber

16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
1 /* purple
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
2 *
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
5 * source distribution.
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
6 *
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
10 * (at your option) any later version.
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
11 *
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
15 * GNU General Public License for more details.
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
16 *
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19859
71d37b57eff2 The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18273
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
20 *
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
21 */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
22
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
23 /* libxmpp is the XMPP protocol plugin. It is linked against libjabbercommon,
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
24 * which may be used to support other protocols (Bonjour) which may need to
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
25 * share code.
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
26 */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
27
18273
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18178
diff changeset
28 #include "internal.h"
e61c53184c52 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 18178
diff changeset
29
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
30 #include "accountopt.h"
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
31 #include "core.h"
19992
3cdb4f27fb7c Cleanup the SASL init and add error checking.
Daniel Atallah <datallah@pidgin.im>
parents: 19897
diff changeset
32 #include "debug.h"
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
33 #include "version.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
34
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
35 #include "iq.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
36 #include "jabber.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
37 #include "chat.h"
26583
e115c7ef2fcf Applied disco-2.patch from nops with some modifications:
Paul Aurich <darkrain42@pidgin.im>
parents: 26042
diff changeset
38 #include "disco.h"
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
39 #include "message.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
40 #include "roster.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
41 #include "si.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
42 #include "message.h"
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
43 #include "presence.h"
29913
58f5122fbcd3 First shot at refactoring the Google-specific XMPP code.
Marcus Lundblad <malu@pidgin.im>
parents: 29863
diff changeset
44 #include "google/google.h"
17773
6956b763b3d1 Implemented adding callbacks for PEP events. Moved the feature list to be application-global instead of per-connection (makes more sense).
Andreas Monitzer <am@adiumx.com>
parents: 17012
diff changeset
45 #include "pep.h"
29407
e4140d21900d Implemented the get_moods prpl function for XMPP. Enables the generic mood
Marcus Lundblad <malu@pidgin.im>
parents: 29404
diff changeset
46 #include "usermood.h"
17791
b947d72db9db Implemented user tune, currently untested.
Andreas Monitzer <am@adiumx.com>
parents: 17788
diff changeset
47 #include "usertune.h"
17816
1b7362b4a7a2 Implemented ad-hoc commands for the buddy action menu (untested), implemented the receiving end of XEP-0115: Entity Capabilities. Note that this seems not to be reliable right now, since some clients seem to have a very broken [read: completely non-functional] implementation (most notably Gajim and the py-transports).
Andreas Monitzer <am@adiumx.com>
parents: 17800
diff changeset
48 #include "caps.h"
23626
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
49 #include "data.h"
25985
30cc8ab16afe Some changes got lost when I merged...
Marcus Lundblad <malu@pidgin.im>
parents: 25984
diff changeset
50 #include "ibb.h"
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
51
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
52 static PurplePluginProtocolInfo *my_protocol = NULL;
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
53
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
54 static PurplePluginProtocolInfo prpl_info =
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
55 {
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
56 "prpl-jabber", /* id */
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
57 "XMPP", /* name */
32316
21dab55b4699 Move struct_size to the beginning of the struct. Even if we don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32315
diff changeset
58 sizeof(PurplePluginProtocolInfo), /* struct_size */
19992
3cdb4f27fb7c Cleanup the SASL init and add error checking.
Daniel Atallah <datallah@pidgin.im>
parents: 19897
diff changeset
59 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_MAIL_CHECK |
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
60 #ifdef HAVE_CYRUS_SASL
19992
3cdb4f27fb7c Cleanup the SASL init and add error checking.
Daniel Atallah <datallah@pidgin.im>
parents: 19897
diff changeset
61 OPT_PROTO_PASSWORD_OPTIONAL |
3cdb4f27fb7c Cleanup the SASL init and add error checking.
Daniel Atallah <datallah@pidgin.im>
parents: 19897
diff changeset
62 #endif
18092
1a2362194473 Mostly taken from the patch on ticket #410, don't send unknown slash
Stu Tomlinson <nosnilmot@pidgin.im>
parents: 17012
diff changeset
63 OPT_PROTO_SLASH_COMMANDS_NATIVE,
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
64 NULL, /* user_splits */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
65 NULL, /* protocol_options */
21956
5b72953efec0 Remove size restriction on XMPP avatars
Sean Egan <seanegan@pidgin.im>
parents: 21717
diff changeset
66 {"png", 32, 32, 96, 96, 0, PURPLE_ICON_SCALE_SEND | PURPLE_ICON_SCALE_DISPLAY}, /* icon_spec */
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
67 jabber_get_actions, /* get_actions */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
68 jabber_list_icon, /* list_icon */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
69 jabber_list_emblem, /* list_emblems */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
70 jabber_status_text, /* status_text */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
71 jabber_tooltip_text, /* tooltip_text */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
72 jabber_status_types, /* status_types */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
73 jabber_blist_node_menu, /* blist_node_menu */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
74 jabber_chat_info, /* chat_info */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
75 jabber_chat_info_defaults, /* chat_info_defaults */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
76 jabber_login, /* login */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
77 jabber_close, /* close */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
78 jabber_message_send_im, /* send_im */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
79 jabber_set_info, /* set_info */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
80 jabber_send_typing, /* send_typing */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
81 jabber_buddy_get_info, /* get_info */
24717
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 24715
diff changeset
82 jabber_set_status, /* set_status */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
83 jabber_idle_set, /* set_idle */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
84 NULL, /* change_passwd */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
85 jabber_roster_add_buddy, /* add_buddy */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
86 NULL, /* add_buddies */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
87 jabber_roster_remove_buddy, /* remove_buddy */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
88 NULL, /* remove_buddies */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
89 NULL, /* add_permit */
25290
033942580f51 Commit patch #7670: Implement xep-0191 (simple blocking) for jabber protocols
Mark Doliner <markdoliner@pidgin.im>
parents: 24820
diff changeset
90 jabber_add_deny, /* add_deny */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
91 NULL, /* rem_permit */
25290
033942580f51 Commit patch #7670: Implement xep-0191 (simple blocking) for jabber protocols
Mark Doliner <markdoliner@pidgin.im>
parents: 24820
diff changeset
92 jabber_rem_deny, /* rem_deny */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
93 NULL, /* set_permit_deny */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
94 jabber_chat_join, /* join_chat */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
95 NULL, /* reject_chat */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
96 jabber_get_chat_name, /* get_chat_name */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
97 jabber_chat_invite, /* chat_invite */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
98 jabber_chat_leave, /* chat_leave */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
99 NULL, /* chat_whisper */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
100 jabber_message_send_chat, /* chat_send */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
101 jabber_keepalive, /* keepalive */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
102 jabber_register_account, /* register_user */
23501
55185be28a1b Pass the "real" chat username to the pidgin_retrieve_user_info function.
Daniel Atallah <datallah@pidgin.im>
parents: 23497
diff changeset
103 NULL, /* get_cb_info */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
104 jabber_roster_alias_change, /* alias_buddy */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
105 jabber_roster_group_change, /* group_buddy */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
106 jabber_roster_group_rename, /* rename_group */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
107 NULL, /* buddy_free */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
108 jabber_convo_closed, /* convo_closed */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
109 jabber_normalize, /* normalize */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
110 jabber_set_buddy_icon, /* set_buddy_icon */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
111 NULL, /* remove_group */
34670
9bd5bd903dc7 Renamed chat buddies to chat users, and IM conversation typing state to IM typing state.
Ankit Vani <a@nevitus.org>
parents: 34634
diff changeset
112 jabber_chat_user_real_name, /* get_cb_real_name */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
113 jabber_chat_set_topic, /* set_chat_topic */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
114 jabber_find_blist_chat, /* find_blist_chat */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
115 jabber_roomlist_get_list, /* roomlist_get_list */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
116 jabber_roomlist_cancel, /* roomlist_cancel */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
117 NULL, /* roomlist_expand_category */
28879
27cc8217e86e jabber: Determine if a buddy can receive a file transfer (when we have
Marcus Lundblad <malu@pidgin.im>
parents: 28832
diff changeset
118 jabber_can_receive_file, /* can_receive_file */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
119 jabber_si_xfer_send, /* send_file */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
120 jabber_si_new_xfer, /* new_xfer */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
121 jabber_offline_message, /* offline_message */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
122 NULL, /* whiteboard_prpl_ops */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
123 jabber_prpl_send_raw, /* send_raw */
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
124 jabber_roomlist_room_serialize, /* roomlist_room_serialize */
18912
606597744812 Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <am@adiumx.com>
parents: 18718
diff changeset
125 jabber_unregister_account, /* unregister_user */
20674
84b5e90852b8 Uh, these two callbacks were backwards. Methinks somebody didn't test
Mark Doliner <markdoliner@pidgin.im>
parents: 20401
diff changeset
126 jabber_send_attention, /* send_attention */
84b5e90852b8 Uh, these two callbacks were backwards. Methinks somebody didn't test
Mark Doliner <markdoliner@pidgin.im>
parents: 20401
diff changeset
127 jabber_attention_types, /* attention_types */
23707
480f94157418 propagate from branch 'im.pidgin.pidgin' (head bd5f7f61d9349053ee4738efc0d17453f0574057)
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 23277 22680
diff changeset
128 NULL, /* get_account_text_table */
22648
e286d795c5f9 Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 22076
diff changeset
129 jabber_initiate_media, /* initiate_media */
26316
950c0d491c0d Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Michael Ruprecht <maiku@pidgin.im>
parents: 26186
diff changeset
130 jabber_get_media_caps, /* get_media_caps */
30138
cca9685df785 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <darkrain42@pidgin.im>
parents: 29863
diff changeset
131 jabber_get_moods, /* get_moods */
cca9685df785 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <darkrain42@pidgin.im>
parents: 29863
diff changeset
132 NULL, /* set_public_alias */
32315
2550a39e0285 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31595
diff changeset
133 NULL /* get_public_alias */
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
134 };
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
135
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
136 static PurpleAccount *find_acct(const char *prpl, const char *acct_id)
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
137 {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
138 PurpleAccount *acct = NULL;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
139
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
140 /* If we have a specific acct, use it */
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
141 if (acct_id) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
142 acct = purple_accounts_find(acct_id, prpl);
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
143 if (acct && !purple_account_is_connected(acct))
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
144 acct = NULL;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
145 } else { /* Otherwise find an active account for the protocol */
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
146 GList *l = purple_accounts_get_all();
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
147 while (l) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
148 if (!strcmp(prpl, purple_account_get_protocol_id(l->data))
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
149 && purple_account_is_connected(l->data)) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
150 acct = l->data;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
151 break;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
152 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
153 l = l->next;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
154 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
155 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
156
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
157 return acct;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
158 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
159
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
160 static gboolean xmpp_uri_handler(const char *proto, const char *user, GHashTable *params)
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
161 {
29109
43b1543582a6 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <darkrain42@pidgin.im>
parents: 28879
diff changeset
162 char *acct_id = params ? g_hash_table_lookup(params, "account") : NULL;
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
163 PurpleAccount *acct;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
164
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
165 if (g_ascii_strcasecmp(proto, "xmpp"))
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
166 return FALSE;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
167
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
168 acct = find_acct(my_protocol->id, acct_id);
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
169
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
170 if (!acct)
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
171 return FALSE;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
172
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
173 /* xmpp:romeo@montague.net?message;subject=Test%20Message;body=Here%27s%20a%20test%20message */
29109
43b1543582a6 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <darkrain42@pidgin.im>
parents: 28879
diff changeset
174 /* params is NULL if the URI has no '?' (or anything after it) */
43b1543582a6 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <darkrain42@pidgin.im>
parents: 28879
diff changeset
175 if (!params || g_hash_table_lookup_extended(params, "message", NULL, NULL)) {
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
176 char *body = g_hash_table_lookup(params, "body");
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
177 if (user && *user) {
34634
90fa70aa7e28 Refactored the jabber protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
178 PurpleIMConversation *im =
34627
08733a7475df Replaced purple_conversation_new() with purple_[im,chat]_conversation_new()
Ankit Vani <a@nevitus.org>
parents: 32338
diff changeset
179 purple_im_conversation_new(acct, user);
34634
90fa70aa7e28 Refactored the jabber protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
180 purple_conversation_present(PURPLE_CONVERSATION(im));
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
181 if (body && *body)
34634
90fa70aa7e28 Refactored the jabber protocol to use GObject-based PurpleConversation
Ankit Vani <a@nevitus.org>
parents: 34627
diff changeset
182 purple_conversation_send_confirm(PURPLE_CONVERSATION(im), body);
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
183 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
184 } else if (g_hash_table_lookup_extended(params, "roster", NULL, NULL)) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
185 char *name = g_hash_table_lookup(params, "name");
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
186 if (user && *user)
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
187 purple_blist_request_add_buddy(acct, user, NULL, name);
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
188 } else if (g_hash_table_lookup_extended(params, "join", NULL, NULL)) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
189 PurpleConnection *gc = purple_account_get_connection(acct);
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
190 if (user && *user) {
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
191 GHashTable *params = jabber_chat_info_defaults(gc, user);
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
192 jabber_chat_join(gc, params);
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
193 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
194 return TRUE;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
195 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
196
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
197 return FALSE;
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
198 }
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
199
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
200 static PurplePluginInfo *
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
201 plugin_query(GError **error)
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
202 {
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
203 return purple_plugin_info_new(
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
204 "id", "prpl-jabber",
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
205 "name", "XMPP",
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
206 "version", DISPLAY_VERSION,
36497
c542ad807256 Forgot flags
Ankit Vani <a@nevitus.org>
parents: 36496
diff changeset
207 "category", N_("Protocol"),
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
208 "summary", N_("XMPP Protocol Plugin"),
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
209 "description", N_("XMPP Protocol Plugin"),
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
210 "website", PURPLE_WEBSITE,
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
211 "purple-abi", PURPLE_ABI_VERSION,
36497
c542ad807256 Forgot flags
Ankit Vani <a@nevitus.org>
parents: 36496
diff changeset
212 "flags", GPLUGIN_PLUGIN_INFO_FLAGS_INTERNAL |
c542ad807256 Forgot flags
Ankit Vani <a@nevitus.org>
parents: 36496
diff changeset
213 GPLUGIN_PLUGIN_INFO_FLAGS_LOAD_ON_QUERY,
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
214 NULL
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
215 );
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
216 }
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
217
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
218 static gboolean
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
219 plugin_load(PurplePlugin *plugin, GError **error)
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
220 {
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
221 PurpleAccountUserSplit *split;
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
222 PurpleAccountOption *option;
30740
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
223 GList *encryption_values = NULL;
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
224
17008
502623177086 Handle people forgetting to enter a domain. Also, change 'server,' in the account options to 'domain,' which is its proper name, and hopefully less confusion
Sean Egan <seanegan@pidgin.im>
parents: 17007
diff changeset
225 /* Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im */
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
226 split = purple_account_user_split_new(_("Domain"), NULL, '@');
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
227 purple_account_user_split_set_reverse(split, FALSE);
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
228 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split);
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
229
29863
314a27e16325 jabber: Fix leaving the Resource blank in Finch, so it isn't '(null)'
Sadrul Habib Chowdhury <sadrul@pidgin.im>
parents: 29847
diff changeset
230 split = purple_account_user_split_new(_("Resource"), "", '/');
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
231 purple_account_user_split_set_reverse(split, FALSE);
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
232 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split);
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
233
30740
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
234 #define ADD_VALUE(list, desc, v) { \
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
235 PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); \
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
236 kvp->key = g_strdup((desc)); \
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
237 kvp->value = g_strdup((v)); \
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
238 list = g_list_prepend(list, kvp); \
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
239 }
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
240
30740
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
241 ADD_VALUE(encryption_values, _("Require encryption"), "require_tls");
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
242 ADD_VALUE(encryption_values, _("Use encryption if available"), "opportunistic_tls");
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
243 ADD_VALUE(encryption_values, _("Use old-style SSL"), "old_ssl");
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
244 #if 0
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
245 ADD_VALUE(encryption_values, "None", "none");
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
246 #endif
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
247 encryption_values = g_list_reverse(encryption_values);
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
248
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
249 #undef ADD_VALUE
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
250
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
251 option = purple_account_option_list_new(_("Connection security"), "connection_security", encryption_values);
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
252 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
30740
017077f79a0f jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <darkrain42@pidgin.im>
parents: 30138
diff changeset
253 option);
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
254
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
255 option = purple_account_option_bool_new(
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
256 _("Allow plaintext auth over unencrypted streams"),
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
257 "auth_plain_in_clear", FALSE);
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
258 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
259 option);
26042
4dabdb5fe213 Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 26041
diff changeset
260
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
261 option = purple_account_option_int_new(_("Connect port"), "port", 5222);
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
262 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
263 option);
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
264
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
265 option = purple_account_option_string_new(_("Connect server"),
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
266 "connect_server", NULL);
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
267 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
268 option);
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
269
21688
a16385b34219 Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
Daniel Atallah <datallah@pidgin.im>
parents: 21395
diff changeset
270 option = purple_account_option_string_new(_("File transfer proxies"),
a16385b34219 Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
Daniel Atallah <datallah@pidgin.im>
parents: 21395
diff changeset
271 "ft_proxies",
27060
f73b519db0c9 Marcus convinced me (I didn't need much) this is a better idea.
Paul Aurich <darkrain42@pidgin.im>
parents: 27059
diff changeset
272 /* TODO: Is this an acceptable default?
f73b519db0c9 Marcus convinced me (I didn't need much) this is a better idea.
Paul Aurich <darkrain42@pidgin.im>
parents: 27059
diff changeset
273 * Also, keep this in sync as they add more servers */
29370
9ff8f3bdd0f5 jabber: Update the default FT proxy (if it's still set as the previous, broken, default).
Paul Aurich <darkrain42@pidgin.im>
parents: 29292
diff changeset
274 JABBER_DEFAULT_FT_PROXIES);
21688
a16385b34219 Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
Daniel Atallah <datallah@pidgin.im>
parents: 21395
diff changeset
275 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
a16385b34219 Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
Daniel Atallah <datallah@pidgin.im>
parents: 21395
diff changeset
276 option);
a16385b34219 Implement more of XEP-0065 to support sending files through a proxy. To avoid adding strings this close to a release, it only supports using a proxy that is discovered from the server, but we'll include an account option to manually specify a ft proxy in the next release. Lots of this is based on a patch from galt - Fixes #3730, #116, #1768
Daniel Atallah <datallah@pidgin.im>
parents: 21395
diff changeset
277
27397
690965a5ff24 Make "BOSH URL" its own account option.
Paul Aurich <darkrain42@pidgin.im>
parents: 27225
diff changeset
278 option = purple_account_option_string_new(_("BOSH URL"),
690965a5ff24 Make "BOSH URL" its own account option.
Paul Aurich <darkrain42@pidgin.im>
parents: 27225
diff changeset
279 "bosh_url", NULL);
690965a5ff24 Make "BOSH URL" its own account option.
Paul Aurich <darkrain42@pidgin.im>
parents: 27225
diff changeset
280 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
690965a5ff24 Make "BOSH URL" its own account option.
Paul Aurich <darkrain42@pidgin.im>
parents: 27225
diff changeset
281 option);
690965a5ff24 Make "BOSH URL" its own account option.
Paul Aurich <darkrain42@pidgin.im>
parents: 27225
diff changeset
282
23626
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
283 /* this should probably be part of global smiley theme settings later on,
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
284 shared with MSN */
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
285 option = purple_account_option_bool_new(_("Show Custom Smileys"),
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
286 "custom_smileys", TRUE);
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
287 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
288 option);
e21afec2f485 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <malu@pidgin.im>
parents: 23277
diff changeset
289
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
290 my_protocol = &prpl_info;
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
291
19894
b273d0db2bdd Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <am@adiumx.com>
parents: 18996
diff changeset
292 purple_prefs_remove("/plugins/prpl/jabber");
21717
424d552a8435 Now that the release has been tagged and strings are unfrozen, enable the new ft proxy account setting for xmpp accounts. Also, prevent duplicate entries in the streamhost lists. I don't know if the default account proxy is acceptable, perhaps there shouldn't be a default value.
Daniel Atallah <datallah@pidgin.im>
parents: 21688
diff changeset
293
28136
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
294 purple_signal_connect(purple_get_core(), "uri-handler", plugin,
a3b6446eb2c4 Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <darkrain42@pidgin.im>
parents: 27601
diff changeset
295 PURPLE_CALLBACK(xmpp_uri_handler), NULL);
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
296
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
297 purple_protocols_add(my_protocol);
36504
a0e5e2e8c219 Use PurplePluginProtocolInfo instead of PurplePlugin as handles in jabber
Ankit Vani <a@nevitus.org>
parents: 36497
diff changeset
298 jabber_plugin_init(my_protocol);
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
299
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
300 return TRUE;
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
301 }
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
302
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
303 static gboolean
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
304 plugin_unload(PurplePlugin *plugin, GError **error)
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
305 {
36504
a0e5e2e8c219 Use PurplePluginProtocolInfo instead of PurplePlugin as handles in jabber
Ankit Vani <a@nevitus.org>
parents: 36497
diff changeset
306 jabber_plugin_uninit(my_protocol);
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
307 purple_protocols_remove(my_protocol);
16303
0dd957edcc0a Very important to add files \!
Sean Egan <seanegan@pidgin.im>
parents:
diff changeset
308
36496
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
309 return TRUE;
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
310 }
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
311
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
312 PURPLE_PLUGIN_INIT(jabber, plugin_query, plugin_load, plugin_unload);
e7fe371c60a6 Refactored jabber to use the new API
Ankit Vani <a@nevitus.org>
parents: 34670
diff changeset
313

mercurial