Mercurial > pidgin
annotate libpurple/protocols/jabber/ibb.h @ 32797:aacfb71133cc
Fix a possible MSN remote crash
Incoming messages with certain characters or character encodings
can cause clients to crash. The fix is for the contents of all
incoming plaintext messages are converted to UTF-8 and validated
before used.
This was reported to us by Fabian Yamaguchi and this patch was written
by Elliott Sales de Andrade (maybe with small, insignificant changes by me)
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Mon, 07 May 2012 03:18:08 +0000 |
parents | 44f53d3fc54f |
children |
rev | line source |
---|---|
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
1 /* |
29884
7fbb7612e3dd
Fix license to refer to GPLv2 in a files...
Marcus Lundblad <ml@update.uu.se>
parents:
29612
diff
changeset
|
2 * purple - Jabber Service Discovery |
7fbb7612e3dd
Fix license to refer to GPLv2 in a files...
Marcus Lundblad <ml@update.uu.se>
parents:
29612
diff
changeset
|
3 * |
28047
8c991e09efcb
Update various header copyrights thanks to licensecheck.
Paul Aurich <paul@darkrain42.org>
parents:
26481
diff
changeset
|
4 * Purple is the legal property of its developers, whose names are too numerous |
8c991e09efcb
Update various header copyrights thanks to licensecheck.
Paul Aurich <paul@darkrain42.org>
parents:
26481
diff
changeset
|
5 * to list here. Please refer to the COPYRIGHT file distributed with this |
8c991e09efcb
Update various header copyrights thanks to licensecheck.
Paul Aurich <paul@darkrain42.org>
parents:
26481
diff
changeset
|
6 * source distribution. |
8c991e09efcb
Update various header copyrights thanks to licensecheck.
Paul Aurich <paul@darkrain42.org>
parents:
26481
diff
changeset
|
7 * |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
8 * This program is free software; you can redistribute it and/or modify |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
9 * it under the terms of the GNU General Public License as published by |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
10 * the Free Software Foundation; either version 2 of the License, or |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
11 * (at your option) any later version. |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
12 * |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
13 * This program is distributed in the hope that it will be useful, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
29884
7fbb7612e3dd
Fix license to refer to GPLv2 in a files...
Marcus Lundblad <ml@update.uu.se>
parents:
29612
diff
changeset
|
16 * GNU General Public License for more details. |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
17 * |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
18 * You should have received a copy of the GNU General Public License |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
19 * along with this program; if not, write to the Free Software |
28070
7921a53b94b3
Oops, Elliott correctly pointed out this was wrong...
Paul Aurich <paul@darkrain42.org>
parents:
28047
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA |
29884
7fbb7612e3dd
Fix license to refer to GPLv2 in a files...
Marcus Lundblad <ml@update.uu.se>
parents:
29612
diff
changeset
|
21 * |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
22 */ |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
23 |
26481
5767b7698c73
Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <paul@darkrain42.org>
parents:
26473
diff
changeset
|
24 #ifndef PURPLE_JABBER_IBB_H_ |
5767b7698c73
Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <paul@darkrain42.org>
parents:
26473
diff
changeset
|
25 #define PURPLE_JABBER_IBB_H_ |
25756
151b4054ce40
Trigger error callbacks when receiving a malformed-ish packet.
Paul Aurich <paul@darkrain42.org>
parents:
25129
diff
changeset
|
26 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
27 #include "jabber.h" |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
28 #include "iq.h" |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
29 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
30 typedef struct _JabberIBBSession JabberIBBSession; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
31 |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
32 typedef void |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
33 (JabberIBBDataCallback)(JabberIBBSession *, const gpointer data, gsize size); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
34 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
35 typedef void (JabberIBBOpenedCallback)(JabberIBBSession *); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
36 typedef void (JabberIBBClosedCallback)(JabberIBBSession *); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
37 typedef void (JabberIBBErrorCallback)(JabberIBBSession *); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
38 typedef void (JabberIBBSentCallback)(JabberIBBSession *); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
39 |
26473
50ff0162fe26
Convert IBB parser (and everything that then stems from that) to new iq-handler
Paul Aurich <paul@darkrain42.org>
parents:
25952
diff
changeset
|
40 typedef gboolean (JabberIBBOpenHandler)(JabberStream *js, const char *from, |
50ff0162fe26
Convert IBB parser (and everything that then stems from that) to new iq-handler
Paul Aurich <paul@darkrain42.org>
parents:
25952
diff
changeset
|
41 const char *id, xmlnode *open); |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
42 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
43 typedef enum { |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
44 JABBER_IBB_SESSION_NOT_OPENED, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
45 JABBER_IBB_SESSION_OPENED, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
46 JABBER_IBB_SESSION_CLOSED, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
47 JABBER_IBB_SESSION_ERROR |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
48 } JabberIBBSessionState; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
49 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
50 struct _JabberIBBSession { |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
51 JabberStream *js; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
52 gchar *who; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
53 gchar *sid; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
54 gchar *id; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
55 guint16 send_seq; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
56 guint16 recv_seq; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
57 gsize block_size; |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
58 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
59 /* session state */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
60 JabberIBBSessionState state; |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
61 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
62 /* user data (f.ex. a handle to a PurpleXfer) */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
63 gpointer user_data; |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
64 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
65 /* callbacks */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
66 JabberIBBOpenedCallback *opened_cb; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
67 JabberIBBSentCallback *data_sent_cb; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
68 JabberIBBClosedCallback *closed_cb; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
69 /* callback for receiving data */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
70 JabberIBBDataCallback *data_received_cb; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
71 JabberIBBErrorCallback *error_cb; |
25952
5f9a24d1c25e
Remove some extra trailing whitespace I noticed after merging mlundblad's
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
25756
diff
changeset
|
72 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
73 /* store the last sent IQ (to permit cancel of callback) */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
74 gchar *last_iq_id; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
75 }; |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
76 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
77 JabberIBBSession *jabber_ibb_session_create(JabberStream *js, const gchar *sid, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
78 const gchar *who, gpointer user_data); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
79 JabberIBBSession *jabber_ibb_session_create_from_xmlnode(JabberStream *js, |
26473
50ff0162fe26
Convert IBB parser (and everything that then stems from that) to new iq-handler
Paul Aurich <paul@darkrain42.org>
parents:
25952
diff
changeset
|
80 const gchar *from, const gchar *id, xmlnode *open, gpointer user_data); |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
81 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
82 void jabber_ibb_session_destroy(JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
83 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
84 void jabber_ibb_session_set_opened_callback(JabberIBBSession *sess, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
85 JabberIBBOpenedCallback *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
86 void jabber_ibb_session_set_data_sent_callback(JabberIBBSession *sess, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
87 JabberIBBSentCallback *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
88 void jabber_ibb_session_set_closed_callback(JabberIBBSession *sess, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
89 JabberIBBClosedCallback *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
90 void jabber_ibb_session_set_data_received_callback(JabberIBBSession *sess, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
91 JabberIBBDataCallback *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
92 void jabber_ibb_session_set_error_callback(JabberIBBSession *sess, |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
93 JabberIBBErrorCallback *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
94 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
95 void jabber_ibb_session_open(JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
96 void jabber_ibb_session_close(JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
97 void jabber_ibb_session_accept(JabberIBBSession *sess); |
25756
151b4054ce40
Trigger error callbacks when receiving a malformed-ish packet.
Paul Aurich <paul@darkrain42.org>
parents:
25129
diff
changeset
|
98 void jabber_ibb_session_send_data(JabberIBBSession *sess, gconstpointer data, |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
99 gsize size); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
100 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
101 const gchar *jabber_ibb_session_get_sid(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
102 JabberStream *jabber_ibb_session_get_js(JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
103 const gchar *jabber_ibb_session_get_who(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
104 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
105 guint16 jabber_ibb_session_get_send_seq(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
106 guint16 jabber_ibb_session_get_recv_seq(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
107 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
108 JabberIBBSessionState jabber_ibb_session_get_state(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
109 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
110 gsize jabber_ibb_session_get_block_size(const JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
111 void jabber_ibb_session_set_block_size(JabberIBBSession *sess, gsize size); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
112 |
31085
44f53d3fc54f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
29884
diff
changeset
|
113 /* get maximum size data block to send (in bytes) |
44f53d3fc54f
Remove trailing whitespace
Richard Laager <rlaager@wiktel.com>
parents:
29884
diff
changeset
|
114 (before encoded to BASE64) */ |
29612
8f442c566ff2
jabber: Adjust amount of data to send in IBB packets so that at most block-size
Marcus Lundblad <ml@update.uu.se>
parents:
28645
diff
changeset
|
115 gsize jabber_ibb_session_get_max_data_size(const JabberIBBSession *sess); |
8f442c566ff2
jabber: Adjust amount of data to send in IBB packets so that at most block-size
Marcus Lundblad <ml@update.uu.se>
parents:
28645
diff
changeset
|
116 |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
117 gpointer jabber_ibb_session_get_user_data(JabberIBBSession *sess); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
118 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
119 /* handle incoming packet */ |
26473
50ff0162fe26
Convert IBB parser (and everything that then stems from that) to new iq-handler
Paul Aurich <paul@darkrain42.org>
parents:
25952
diff
changeset
|
120 void jabber_ibb_parse(JabberStream *js, const char *who, JabberIqType type, |
50ff0162fe26
Convert IBB parser (and everything that then stems from that) to new iq-handler
Paul Aurich <paul@darkrain42.org>
parents:
25952
diff
changeset
|
121 const char *id, xmlnode *child); |
25129
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
122 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
123 /* add a handler for open session */ |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
124 void jabber_ibb_register_open_handler(JabberIBBOpenHandler *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
125 void jabber_ibb_unregister_open_handler(JabberIBBOpenHandler *cb); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
126 |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
127 void jabber_ibb_init(void); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
128 void jabber_ibb_uninit(void); |
b4ec5481a67a
Implements file transfers using in-band bytestreams for XMPP
Marcus Lundblad <ml@update.uu.se>
parents:
diff
changeset
|
129 |
26481
5767b7698c73
Further standardize the sentinel style (did someone say leading _s are theoretically a reserved namespace?)
Paul Aurich <paul@darkrain42.org>
parents:
26473
diff
changeset
|
130 #endif /* PURPLE_JABBER_IBB_H_ */ |