libpurple/protocols/jabber/presence.h

Tue, 02 Nov 2021 00:30:07 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 02 Nov 2021 00:30:07 -0500
changeset 41157
f223b69f7da2
parent 40708
53a26c29d26c
child 41244
5535c6fdd135
permissions
-rw-r--r--

Fix some bugs with proxies for xmpp

Testing Done:
Compiled and ran, was unable to get it to actually use charles proxy though.

Reviewed at https://reviews.imfreedom.org/r/1118/

7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
1 /**
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
2 * @file presence.h Presence
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
3 *
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
4 * purple
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
5 *
28322
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27280
diff changeset
6 * Purple is the legal property of its developers, whose names are too numerous
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27280
diff changeset
7 * to list here. Please refer to the COPYRIGHT file distributed with this
ac8fec1d2234 Remove specific copyright lines from the XMPP prpl.
Paul Aurich <darkrain42@pidgin.im>
parents: 27280
diff changeset
8 * source distribution.
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
9 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
10 * This program is free software; you can redistribute it and/or modify
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
11 * it under the terms of the GNU General Public License as published by
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
12 * the Free Software Foundation; either version 2 of the License, or
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
13 * (at your option) any later version.
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
14 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
15 * This program is distributed in the hope that it will be useful,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
18 * GNU General Public License for more details.
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
19 *
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
20 * You should have received a copy of the GNU General Public License
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
21 * 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: 15884
diff changeset
22 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
23 */
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39522
diff changeset
24
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39522
diff changeset
25 #ifndef PURPLE_JABBER_PRESENCE_H
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39522
diff changeset
26 #define PURPLE_JABBER_PRESENCE_H
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
28 typedef enum {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
29 JABBER_PRESENCE_ERROR = -2,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
30 JABBER_PRESENCE_PROBE = -1,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
31 JABBER_PRESENCE_AVAILABLE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
32 JABBER_PRESENCE_UNAVAILABLE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
33 JABBER_PRESENCE_SUBSCRIBE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
34 JABBER_PRESENCE_SUBSCRIBED,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
35 JABBER_PRESENCE_UNSUBSCRIBE,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
36 JABBER_PRESENCE_UNSUBSCRIBED
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
37 } JabberPresenceType;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
38
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
39 typedef struct _JabberPresenceChatInfo JabberPresenceChatInfo;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
40 typedef struct _JabberPresence JabberPresence;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
41
40358
e6fe6fc1f516 move all protocols, purple plugins, and purple tests to use purple.h instead of including files individually
Gary Kramlich <grim@reaperworld.com>
parents: 39819
diff changeset
42 #include <purple.h>
e6fe6fc1f516 move all protocols, purple plugins, and purple tests to use purple.h instead of including files individually
Gary Kramlich <grim@reaperworld.com>
parents: 39819
diff changeset
43
9954
52a14a58a33e [gaim-migrate @ 10851]
Nathan Walp <nwalp@pidgin.im>
parents: 9944
diff changeset
44 #include "buddy.h"
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
45 #include "chat.h"
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
46 #include "jabber.h"
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
47 #include "jutil.h"
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
48
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
49 struct _JabberPresenceChatInfo {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
50 GSList *codes;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33402
diff changeset
51 PurpleXmlNode *item;
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
52 };
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
53
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
54 struct _JabberPresence {
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
55 JabberPresenceType type;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
56 JabberID *jid_from;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
57 const char *from;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
58 const char *to;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
59 const char *id;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
60
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
61 JabberBuddy *jb;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
62 JabberChat *chat;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
63 JabberPresenceChatInfo chat_info;
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33402
diff changeset
64 PurpleXmlNode *caps; /* TODO: Temporary, see presence.c:parse_caps */
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
65
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
66 JabberBuddyState state;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
67 gchar *status;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
68 int priority;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
69
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
70 char *vcard_avatar_hash;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
71 char *nickname;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
72
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
73 gboolean delayed;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
74 time_t sent;
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
75 int idle;
33402
dc22f856e957 fix a memory leak (I've been in c++ land too long)
Nathan Walp <nwalp@pidgin.im>
parents: 33400
diff changeset
76 gboolean adjust_idle_for_delay;
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
77 };
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
78
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
79 typedef void (JabberPresenceHandler)(JabberStream *js, JabberPresence *presence,
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33402
diff changeset
80 PurpleXmlNode *child);
29848
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
81 void jabber_presence_register_handler(const char *node, const char *xmlns,
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
82 JabberPresenceHandler *handler);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
83
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
84 void jabber_presence_init(void);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
85 void jabber_presence_uninit(void);
999c0235bbc6 jabber: Heavily refactor jabber_presence_parse(). It's still not short enough.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
86
40708
53a26c29d26c Move the PurpleProtocolServer interface to its own file.
Gary Kramlich <grim@reaperworld.com>
parents: 40358
diff changeset
87 void jabber_set_status(PurpleProtocolServer *protocol_server, PurpleAccount *account, PurpleStatus *status);
24717
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
88
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
89 /**
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
90 * Send a full presence stanza.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
91 *
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
92 * @param js A JabberStream object.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
93 * @param force Force sending the presence stanza, irrespective of whether
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
94 * the contents seem to have changed.
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
95 */
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
96 void jabber_presence_send(JabberStream *js, gboolean force);
13c7497f44f8 Clean up jabber_presence_send
Paul Aurich <darkrain42@pidgin.im>
parents: 19897
diff changeset
97
34935
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33402
diff changeset
98 PurpleXmlNode *jabber_presence_create_js(JabberStream *js, JabberBuddyState state, const char *msg, int priority);
686fa55b0deb Replaced xmlnode with PurpleXmlNode, and xmlnode_* API with purple_xmlnode_* API
Ankit Vani <a@nevitus.org>
parents: 33402
diff changeset
99 void jabber_presence_parse(JabberStream *js, PurpleXmlNode *packet);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
100 void jabber_presence_subscription_set(JabberStream *js, const char *who,
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
101 const char *type);
27280
55a39efcf7b8 Simplify the fake_to_self function.
Paul Aurich <darkrain42@pidgin.im>
parents: 26707
diff changeset
102 void jabber_presence_fake_to_self(JabberStream *js, PurpleStatus *status);
39522
696fe0c9677f Fix some const warnings.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 34935
diff changeset
103 void purple_status_to_jabber(PurpleStatus *status, JabberBuddyState *state, char **msg, int *priority);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
104
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39522
diff changeset
105 #endif /* PURPLE_JABBER_PRESENCE_H */

mercurial