annotate libpurple/protocols/jabber/libxmpp.c @ 32493:743bb6b1aa30

Move struct_size to the beginning of the struct. Even if we don't rewrite this somehow (as a GObject or otherwise), it really belongs at the start.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 03 Sep 2011 23:30:40 +0000
parents cd1d9e04c587
children c6943fd38d44
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /* purple
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 *
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 * Purple is the legal property of its developers, whose names are too numerous
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 * to list here. Please refer to the COPYRIGHT file distributed with this
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 * source distribution.
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6 *
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 * This program is free software; you can redistribute it and/or modify
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 * it under the terms of the GNU General Public License as published by
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9 * the Free Software Foundation; either version 2 of the License, or
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 * (at your option) any later version.
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 *
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 * This program is distributed in the hope that it will be useful,
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15 * GNU General Public License for more details.
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 *
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 * You should have received a copy of the GNU General Public License
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18 * along with this program; if not, write to the Free Software
19680
44b4e8bd759b The FSF changed its address a while ago; our files were out of date.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 18210
diff changeset
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 *
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 /* libxmpp is the XMPP protocol plugin. It is linked against libjabbercommon,
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24 * which may be used to support other protocols (Bonjour) which may need to
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 * share code.
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27
18210
b8572b937c09 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents: 18106
diff changeset
28 #include "internal.h"
b8572b937c09 #include reorganizations to allow compiling with glib < 2.8 using the
Stu Tomlinson <stu@nosnilmot.com>
parents: 18106
diff changeset
29
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 #include "accountopt.h"
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
31 #include "core.h"
19998
7baa2bc64226 Cleanup the SASL init and add error checking.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19696
diff changeset
32 #include "debug.h"
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #include "version.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
34
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
35 #include "iq.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
36 #include "jabber.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
37 #include "chat.h"
26329
f5e613e05332 Applied disco-2.patch from nops with some modifications:
Paul Aurich <paul@darkrain42.org>
parents: 25443
diff changeset
38 #include "disco.h"
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
39 #include "message.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
40 #include "roster.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
41 #include "si.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
42 #include "message.h"
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
43 #include "presence.h"
30905
ae615b3d3e47 First shot at refactoring the Google-specific XMPP code.
Marcus Lundblad <ml@update.uu.se>
parents: 29982
diff changeset
44 #include "google/google.h"
17566
0370da969e8a Implemented adding callbacks for PEP events. Moved the feature list to be application-global instead of per-connection (makes more sense).
Andreas Monitzer <pidgin@monitzer.com>
parents: 16973
diff changeset
45 #include "pep.h"
29857
f3654983e1da Implemented the get_moods prpl function for XMPP. Enables the generic mood
Marcus Lundblad <ml@update.uu.se>
parents: 29854
diff changeset
46 #include "usermood.h"
17584
3e437e86bd6e Implemented user tune, currently untested.
Andreas Monitzer <pidgin@monitzer.com>
parents: 17581
diff changeset
47 #include "usertune.h"
17609
f88b3a093cba 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 <pidgin@monitzer.com>
parents: 17593
diff changeset
48 #include "caps.h"
23445
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
49 #include "data.h"
25212
87a206ca018f Some changes got lost when I merged...
Marcus Lundblad <ml@update.uu.se>
parents: 25211
diff changeset
50 #include "ibb.h"
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
51
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
52 static PurplePlugin *my_protocol = NULL;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
53
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
54 static PurplePluginProtocolInfo prpl_info =
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
55 {
32493
743bb6b1aa30 Move struct_size to the beginning of the struct. Even if we don't
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 32492
diff changeset
56 sizeof(PurplePluginProtocolInfo), /* struct_size */
19998
7baa2bc64226 Cleanup the SASL init and add error checking.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19696
diff changeset
57 OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME | OPT_PROTO_MAIL_CHECK |
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
58 #ifdef HAVE_CYRUS_SASL
19998
7baa2bc64226 Cleanup the SASL init and add error checking.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19696
diff changeset
59 OPT_PROTO_PASSWORD_OPTIONAL |
7baa2bc64226 Cleanup the SASL init and add error checking.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 19696
diff changeset
60 #endif
18030
62a71bb085ef Mostly taken from the patch on ticket #410, don't send unknown slash
Stu Tomlinson <stu@nosnilmot.com>
parents: 16973
diff changeset
61 OPT_PROTO_SLASH_COMMANDS_NATIVE,
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
62 NULL, /* user_splits */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
63 NULL, /* protocol_options */
21841
d0a3463633ba Remove size restriction on XMPP avatars
Sean Egan <seanegan@gmail.com>
parents: 21637
diff changeset
64 {"png", 32, 32, 96, 96, 0, PURPLE_ICON_SCALE_SEND | PURPLE_ICON_SCALE_DISPLAY}, /* icon_spec */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
65 jabber_list_icon, /* list_icon */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
66 jabber_list_emblem, /* list_emblems */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
67 jabber_status_text, /* status_text */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
68 jabber_tooltip_text, /* tooltip_text */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
69 jabber_status_types, /* status_types */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
70 jabber_blist_node_menu, /* blist_node_menu */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
71 jabber_chat_info, /* chat_info */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
72 jabber_chat_info_defaults, /* chat_info_defaults */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
73 jabber_login, /* login */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
74 jabber_close, /* close */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
75 jabber_message_send_im, /* send_im */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
76 jabber_set_info, /* set_info */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
77 jabber_send_typing, /* send_typing */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
78 jabber_buddy_get_info, /* get_info */
25743
6d6e10476c52 Clean up jabber_presence_send
Paul Aurich <paul@darkrain42.org>
parents: 25741
diff changeset
79 jabber_set_status, /* set_status */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
80 jabber_idle_set, /* set_idle */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
81 NULL, /* change_passwd */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
82 jabber_roster_add_buddy, /* add_buddy */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
83 NULL, /* add_buddies */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
84 jabber_roster_remove_buddy, /* remove_buddy */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
85 NULL, /* remove_buddies */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
86 NULL, /* add_permit */
24820
0700833f0c5d Commit patch #7670: Implement xep-0191 (simple blocking) for jabber protocols
Mark Doliner <mark@kingant.net>
parents: 24501
diff changeset
87 jabber_add_deny, /* add_deny */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
88 NULL, /* rem_permit */
24820
0700833f0c5d Commit patch #7670: Implement xep-0191 (simple blocking) for jabber protocols
Mark Doliner <mark@kingant.net>
parents: 24501
diff changeset
89 jabber_rem_deny, /* rem_deny */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
90 NULL, /* set_permit_deny */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
91 jabber_chat_join, /* join_chat */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
92 NULL, /* reject_chat */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
93 jabber_get_chat_name, /* get_chat_name */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
94 jabber_chat_invite, /* chat_invite */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
95 jabber_chat_leave, /* chat_leave */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
96 NULL, /* chat_whisper */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
97 jabber_message_send_chat, /* chat_send */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
98 jabber_keepalive, /* keepalive */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
99 jabber_register_account, /* register_user */
23360
da78db9f188f Pass the "real" chat username to the pidgin_retrieve_user_info function.
Daniel Atallah <daniel.atallah@gmail.com>
parents: 23356
diff changeset
100 NULL, /* get_cb_info */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
101 NULL, /* get_cb_away */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
102 jabber_roster_alias_change, /* alias_buddy */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
103 jabber_roster_group_change, /* group_buddy */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
104 jabber_roster_group_rename, /* rename_group */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
105 NULL, /* buddy_free */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
106 jabber_convo_closed, /* convo_closed */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
107 jabber_normalize, /* normalize */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
108 jabber_set_buddy_icon, /* set_buddy_icon */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
109 NULL, /* remove_group */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
110 jabber_chat_buddy_real_name, /* get_cb_real_name */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
111 jabber_chat_set_topic, /* set_chat_topic */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
112 jabber_find_blist_chat, /* find_blist_chat */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
113 jabber_roomlist_get_list, /* roomlist_get_list */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
114 jabber_roomlist_cancel, /* roomlist_cancel */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
115 NULL, /* roomlist_expand_category */
28911
738cd1adb3cf jabber: Determine if a buddy can receive a file transfer (when we have
Marcus Lundblad <ml@update.uu.se>
parents: 28893
diff changeset
116 jabber_can_receive_file, /* can_receive_file */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
117 jabber_si_xfer_send, /* send_file */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
118 jabber_si_new_xfer, /* new_xfer */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
119 jabber_offline_message, /* offline_message */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
120 NULL, /* whiteboard_prpl_ops */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
121 jabber_prpl_send_raw, /* send_raw */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
122 jabber_roomlist_room_serialize, /* roomlist_room_serialize */
18703
033b128f7c21 Added unregistering XMPP accounts. This requires a new prpl-struct entry, but I got an ok for that on the mailing list.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18684
diff changeset
123 jabber_unregister_account, /* unregister_user */
20631
56cec2b6ff98 Uh, these two callbacks were backwards. Methinks somebody didn't test
Mark Doliner <mark@kingant.net>
parents: 20149
diff changeset
124 jabber_send_attention, /* send_attention */
56cec2b6ff98 Uh, these two callbacks were backwards. Methinks somebody didn't test
Mark Doliner <mark@kingant.net>
parents: 20149
diff changeset
125 jabber_attention_types, /* attention_types */
25657
ff29208e03ef propagate from branch 'im.pidgin.pidgin' (head 75f0460d3679231b61d572e76fe02534a597c6b5)
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 23112 25641
diff changeset
126 NULL, /* get_account_text_table */
25637
92e71f6e10d4 Patch from Marcus Lundblad ('mlundblad') to improve audio support in xmpp.
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 25564
diff changeset
127 jabber_initiate_media, /* initiate_media */
26190
d6e23439b77c Change purple_prpl_can_do_media to purple_prpl_get_media_caps.
Mike Ruprecht <maiku@soc.pidgin.im>
parents: 26062
diff changeset
128 jabber_get_media_caps, /* get_media_caps */
30262
2a436e0ce977 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <paul@darkrain42.org>
parents: 29982
diff changeset
129 jabber_get_moods, /* get_moods */
2a436e0ce977 Add purple_account_[gs]et_public_alias functions, per discussion in d@cpi
Paul Aurich <paul@darkrain42.org>
parents: 29982
diff changeset
130 NULL, /* set_public_alias */
32492
cd1d9e04c587 Rename the _with_invite functions to their counterparts.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 31847
diff changeset
131 NULL /* get_public_alias */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
132 };
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
133
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
134 static gboolean load_plugin(PurplePlugin *plugin)
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
135 {
29957
a694731e8b3f jabber: Move the initialization into the jabber plugin, and only initialize some things once.
Paul Aurich <paul@darkrain42.org>
parents: 29867
diff changeset
136 jabber_plugin_init(plugin);
26952
92565c8e1e3a Add jabber signals for IQ, Message, and Presence stanzas. Lightly tested (it doesn't crash [Prove me wrong!]) and as you'll note, I refer to documentation that doesn't yet exist.
Paul Aurich <paul@darkrain42.org>
parents: 26918
diff changeset
137
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
138 return TRUE;
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
139 }
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
140
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
141 static gboolean unload_plugin(PurplePlugin *plugin)
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
142 {
29957
a694731e8b3f jabber: Move the initialization into the jabber plugin, and only initialize some things once.
Paul Aurich <paul@darkrain42.org>
parents: 29867
diff changeset
143 jabber_plugin_uninit(plugin);
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
144
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
145 return TRUE;
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
146 }
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
147
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
148 static PurplePluginInfo info =
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
149 {
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
150 PURPLE_PLUGIN_MAGIC,
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
151 PURPLE_MAJOR_VERSION,
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
152 PURPLE_MINOR_VERSION,
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
153 PURPLE_PLUGIN_PROTOCOL, /**< type */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
154 NULL, /**< ui_requirement */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
155 0, /**< flags */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
156 NULL, /**< dependencies */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
157 PURPLE_PRIORITY_DEFAULT, /**< priority */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
158
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
159 "prpl-jabber", /**< id */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
160 "XMPP", /**< name */
21030
3cc856ca2338 Add a --with-extraversion option to ./configure so packagers can fine tune
Stu Tomlinson <stu@nosnilmot.com>
parents: 20631
diff changeset
161 DISPLAY_VERSION, /**< version */
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
162 /** summary */
16915
56042b2f8b64 s/Jabber/XMPP in user-visible places.
Richard Laager <rlaager@wiktel.com>
parents: 16728
diff changeset
163 N_("XMPP Protocol Plugin"),
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
164 /** description */
16915
56042b2f8b64 s/Jabber/XMPP in user-visible places.
Richard Laager <rlaager@wiktel.com>
parents: 16728
diff changeset
165 N_("XMPP Protocol Plugin"),
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
166 NULL, /**< author */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
167 PURPLE_WEBSITE, /**< homepage */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
168
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
169 load_plugin, /**< load */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
170 unload_plugin, /**< unload */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
171 NULL, /**< destroy */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
172
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
173 NULL, /**< ui_info */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
174 &prpl_info, /**< extra_info */
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
175 NULL, /**< prefs_info */
16675
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
176 jabber_actions,
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
177
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
178 /* padding */
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
179 NULL,
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
180 NULL,
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
181 NULL,
a338acd14365 And now the protocols
Gary Kramlich <grim@reaperworld.com>
parents: 16241
diff changeset
182 NULL
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
183 };
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
184
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
185 static PurpleAccount *find_acct(const char *prpl, const char *acct_id)
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
186 {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
187 PurpleAccount *acct = NULL;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
188
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
189 /* If we have a specific acct, use it */
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
190 if (acct_id) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
191 acct = purple_accounts_find(acct_id, prpl);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
192 if (acct && !purple_account_is_connected(acct))
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
193 acct = NULL;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
194 } else { /* Otherwise find an active account for the protocol */
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
195 GList *l = purple_accounts_get_all();
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
196 while (l) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
197 if (!strcmp(prpl, purple_account_get_protocol_id(l->data))
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
198 && purple_account_is_connected(l->data)) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
199 acct = l->data;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
200 break;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
201 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
202 l = l->next;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
203 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
204 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
205
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
206 return acct;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
207 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
208
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
209 static gboolean xmpp_uri_handler(const char *proto, const char *user, GHashTable *params)
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
210 {
29155
088fac135139 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <paul@darkrain42.org>
parents: 28911
diff changeset
211 char *acct_id = params ? g_hash_table_lookup(params, "account") : NULL;
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
212 PurpleAccount *acct;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
213
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
214 if (g_ascii_strcasecmp(proto, "xmpp"))
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
215 return FALSE;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
216
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
217 acct = find_acct(purple_plugin_get_id(my_protocol), acct_id);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
218
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
219 if (!acct)
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
220 return FALSE;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
221
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
222 /* xmpp:romeo@montague.net?message;subject=Test%20Message;body=Here%27s%20a%20test%20message */
29155
088fac135139 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <paul@darkrain42.org>
parents: 28911
diff changeset
223 /* params is NULL if the URI has no '?' (or anything after it) */
088fac135139 On Windows, treat a 'xmpp:foo@bar.com' URI as opening an IM window.
Paul Aurich <paul@darkrain42.org>
parents: 28911
diff changeset
224 if (!params || g_hash_table_lookup_extended(params, "message", NULL, NULL)) {
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
225 char *body = g_hash_table_lookup(params, "body");
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
226 if (user && *user) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
227 PurpleConversation *conv =
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
228 purple_conversation_new(PURPLE_CONV_TYPE_IM, acct, user);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
229 purple_conversation_present(conv);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
230 if (body && *body)
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
231 purple_conv_send_confirm(conv, body);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
232 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
233 } else if (g_hash_table_lookup_extended(params, "roster", NULL, NULL)) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
234 char *name = g_hash_table_lookup(params, "name");
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
235 if (user && *user)
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
236 purple_blist_request_add_buddy(acct, user, NULL, name);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
237 } else if (g_hash_table_lookup_extended(params, "join", NULL, NULL)) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
238 PurpleConnection *gc = purple_account_get_connection(acct);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
239 if (user && *user) {
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
240 GHashTable *params = jabber_chat_info_defaults(gc, user);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
241 jabber_chat_join(gc, params);
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
242 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
243 return TRUE;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
244 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
245
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
246 return FALSE;
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
247 }
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
248
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
249
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
250 static void
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
251 init_plugin(PurplePlugin *plugin)
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
252 {
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
253 PurpleAccountUserSplit *split;
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
254 PurpleAccountOption *option;
30895
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
255 GList *encryption_values = NULL;
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
256
16963
919515748253 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@gmail.com>
parents: 16962
diff changeset
257 /* Translators: 'domain' is used here in the context of Internet domains, e.g. pidgin.im */
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
258 split = purple_account_user_split_new(_("Domain"), NULL, '@');
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
259 purple_account_user_split_set_reverse(split, FALSE);
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
260 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split);
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
261
29982
782bf663733d jabber: Fix leaving the Resource blank in Finch, so it isn't '(null)'
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 29959
diff changeset
262 split = purple_account_user_split_new(_("Resource"), "", '/');
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
263 purple_account_user_split_set_reverse(split, FALSE);
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
264 prpl_info.user_splits = g_list_append(prpl_info.user_splits, split);
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
265
30895
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
266 #define ADD_VALUE(list, desc, v) { \
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
267 PurpleKeyValuePair *kvp = g_new0(PurpleKeyValuePair, 1); \
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
268 kvp->key = g_strdup((desc)); \
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
269 kvp->value = g_strdup((v)); \
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
270 list = g_list_prepend(list, kvp); \
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
271 }
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
272
30895
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
273 ADD_VALUE(encryption_values, _("Require encryption"), "require_tls");
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
274 ADD_VALUE(encryption_values, _("Use encryption if available"), "opportunistic_tls");
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
275 ADD_VALUE(encryption_values, _("Use old-style SSL"), "old_ssl");
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
276 #if 0
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
277 ADD_VALUE(encryption_values, "None", "none");
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
278 #endif
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
279 encryption_values = g_list_reverse(encryption_values);
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
280
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
281 #undef ADD_VALUE
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
282
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
283 option = purple_account_option_list_new(_("Connection security"), "connection_security", encryption_values);
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
284 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
30895
8084631e2e84 jabber: Unify "Require TLS" and "Use old-style (port 5223) SSL" settings
Paul Aurich <paul@darkrain42.org>
parents: 30262
diff changeset
285 option);
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
286
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
287 option = purple_account_option_bool_new(
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
288 _("Allow plaintext auth over unencrypted streams"),
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
289 "auth_plain_in_clear", FALSE);
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
290 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
291 option);
25443
5f9a24d1c25e Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 25442
diff changeset
292
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
293 option = purple_account_option_int_new(_("Connect port"), "port", 5222);
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
294 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
295 option);
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
296
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
297 option = purple_account_option_string_new(_("Connect server"),
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
298 "connect_server", NULL);
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
299 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
300 option);
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
301
21603
a4b6854737d5 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 <daniel.atallah@gmail.com>
parents: 21125
diff changeset
302 option = purple_account_option_string_new(_("File transfer proxies"),
a4b6854737d5 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 <daniel.atallah@gmail.com>
parents: 21125
diff changeset
303 "ft_proxies",
26918
a4b59d72b94b Marcus convinced me (I didn't need much) this is a better idea.
Paul Aurich <paul@darkrain42.org>
parents: 26917
diff changeset
304 /* TODO: Is this an acceptable default?
a4b59d72b94b Marcus convinced me (I didn't need much) this is a better idea.
Paul Aurich <paul@darkrain42.org>
parents: 26917
diff changeset
305 * Also, keep this in sync as they add more servers */
29439
031fd1cd88df jabber: Update the default FT proxy (if it's still set as the previous, broken, default).
Paul Aurich <paul@darkrain42.org>
parents: 29364
diff changeset
306 JABBER_DEFAULT_FT_PROXIES);
21603
a4b6854737d5 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 <daniel.atallah@gmail.com>
parents: 21125
diff changeset
307 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
a4b6854737d5 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 <daniel.atallah@gmail.com>
parents: 21125
diff changeset
308 option);
a4b6854737d5 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 <daniel.atallah@gmail.com>
parents: 21125
diff changeset
309
27255
a9fdf9327652 Make "BOSH URL" its own account option.
Paul Aurich <paul@darkrain42.org>
parents: 27088
diff changeset
310 option = purple_account_option_string_new(_("BOSH URL"),
a9fdf9327652 Make "BOSH URL" its own account option.
Paul Aurich <paul@darkrain42.org>
parents: 27088
diff changeset
311 "bosh_url", NULL);
a9fdf9327652 Make "BOSH URL" its own account option.
Paul Aurich <paul@darkrain42.org>
parents: 27088
diff changeset
312 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
a9fdf9327652 Make "BOSH URL" its own account option.
Paul Aurich <paul@darkrain42.org>
parents: 27088
diff changeset
313 option);
a9fdf9327652 Make "BOSH URL" its own account option.
Paul Aurich <paul@darkrain42.org>
parents: 27088
diff changeset
314
23445
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
315 /* this should probably be part of global smiley theme settings later on,
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
316 shared with MSN */
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
317 option = purple_account_option_bool_new(_("Show Custom Smileys"),
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
318 "custom_smileys", TRUE);
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
319 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
320 option);
4ac5db6e39f3 Custom smileys for XMPP according to XEP 0231. Refs #5627.
Marcus Lundblad <ml@update.uu.se>
parents: 23112
diff changeset
321
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
322 my_protocol = plugin;
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
323
19489
b0733d5d7621 Fixed code indenting, some spaces were still left and now replaced by tabs.
Andreas Monitzer <pidgin@monitzer.com>
parents: 18922
diff changeset
324 purple_prefs_remove("/plugins/prpl/jabber");
21637
844225b0c905 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 <daniel.atallah@gmail.com>
parents: 21603
diff changeset
325
28203
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
326 purple_signal_connect(purple_get_core(), "uri-handler", plugin,
da22b6d0151e Add support for XMPP URIs on Windows. Closes #2326.
Paul Aurich <paul@darkrain42.org>
parents: 27427
diff changeset
327 PURPLE_CALLBACK(xmpp_uri_handler), NULL);
16241
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
328 }
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
329
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
330
1aed376daccb Very important to add files \!
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
331 PURPLE_INIT_PLUGIN(jabber, init_plugin, info);