libpurple/protocols/jabber/jutil.h

Thu, 26 Oct 2023 22:35:00 -0500

author
Elliott Sales de Andrade <quantum.analyst@gmail.com>
date
Thu, 26 Oct 2023 22:35:00 -0500
changeset 42436
185c0b83e408
parent 41791
3bf884522663
permissions
-rw-r--r--

Export some XMPP symbols used in tests

For simplicity, this _only_ covers symbols actually used in tests, and does not
attempt to add a Since or similar tag.

Testing Done:
Compiled

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

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 jutil.h utility functions
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: 27898
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: 27898
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: 27898
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: 15952
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: 39556
diff changeset
24
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39556
diff changeset
25 #ifndef PURPLE_JABBER_JUTIL_H
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39556
diff changeset
26 #define PURPLE_JABBER_JUTIL_H
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
27
39556
622bf98df0ac Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 38327
diff changeset
28 typedef struct {
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
29 char *node;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
30 char *domain;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
31 char *resource;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
32 } JabberID;
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
33
29384
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
34 typedef enum {
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
35 JABBER_BUDDY_STATE_UNKNOWN = -2,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
36 JABBER_BUDDY_STATE_ERROR = -1,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
37 JABBER_BUDDY_STATE_UNAVAILABLE = 0,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
38 JABBER_BUDDY_STATE_ONLINE,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
39 JABBER_BUDDY_STATE_CHAT,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
40 JABBER_BUDDY_STATE_AWAY,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
41 JABBER_BUDDY_STATE_XA,
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
42 JABBER_BUDDY_STATE_DND
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
43 } JabberBuddyState;
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
44
27480
7efe4b1ff6a0 I had to make these changes to get "make check" to run
Mark Doliner <markdoliner@pidgin.im>
parents: 27163
diff changeset
45 #include "jabber.h"
7efe4b1ff6a0 I had to make these changes to get "make check" to run
Mark Doliner <markdoliner@pidgin.im>
parents: 27163
diff changeset
46
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
47 PURPLE_XMPP_EXTERN_FOR_TESTS
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
48 JabberID* jabber_id_new(const char *str);
35235
93d4bff19574 Prevent spoofing of iq replies by verifying that the 'from' address
Mark Doliner <mark@kingant.net>
parents: 29910
diff changeset
49
93d4bff19574 Prevent spoofing of iq replies by verifying that the 'from' address
Mark Doliner <mark@kingant.net>
parents: 29910
diff changeset
50 /**
35308
b8e2a5fbffd3 Fix problems logging into some servers including jabber.org and
Mark Doliner <mark@kingant.net>
parents: 35235
diff changeset
51 * Compare two JIDs for equality. In addition to the node and domain,
b8e2a5fbffd3 Fix problems logging into some servers including jabber.org and
Mark Doliner <mark@kingant.net>
parents: 35235
diff changeset
52 * the resources of the two JIDs must also be equal (or both absent).
35235
93d4bff19574 Prevent spoofing of iq replies by verifying that the 'from' address
Mark Doliner <mark@kingant.net>
parents: 29910
diff changeset
53 */
35308
b8e2a5fbffd3 Fix problems logging into some servers including jabber.org and
Mark Doliner <mark@kingant.net>
parents: 35235
diff changeset
54 gboolean jabber_id_equal(const JabberID *jid1, const JabberID *jid2);
35235
93d4bff19574 Prevent spoofing of iq replies by verifying that the 'from' address
Mark Doliner <mark@kingant.net>
parents: 29910
diff changeset
55
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
56 PURPLE_XMPP_EXTERN_FOR_TESTS
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
57 void jabber_id_free(JabberID *jid);
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
58
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
59 PURPLE_XMPP_EXTERN_FOR_TESTS
7306
61d7324411f8 [gaim-migrate @ 7890]
Nathan Walp <nwalp@pidgin.im>
parents: 7262
diff changeset
60 char *jabber_get_resource(const char *jid);
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
61 PURPLE_XMPP_EXTERN_FOR_TESTS
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
62 char *jabber_get_bare_jid(const char *jid);
28431
8450418b5abd jabber: Properly handle adding buddies that contain a resource. Closes #10151.
Paul Aurich <darkrain42@pidgin.im>
parents: 28322
diff changeset
63 char *jabber_id_get_bare_jid(const JabberID *jid);
35235
93d4bff19574 Prevent spoofing of iq replies by verifying that the 'from' address
Mark Doliner <mark@kingant.net>
parents: 29910
diff changeset
64 char *jabber_id_get_full_jid(const JabberID *jid);
7014
11471fae7ba0 [gaim-migrate @ 7577]
Nathan Walp <nwalp@pidgin.im>
parents:
diff changeset
65
29063
f245c5e9e9f3 jabber: When getting info on a "bare" domain JID, interpret the value of "last"
Marcus Lundblad <malu@pidgin.im>
parents: 28431
diff changeset
66 gboolean jabber_jid_is_domain(const char *jid);
f245c5e9e9f3 jabber: When getting info on a "bare" domain JID, interpret the value of "last"
Marcus Lundblad <malu@pidgin.im>
parents: 28431
diff changeset
67
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
68 PURPLE_XMPP_EXTERN_FOR_TESTS
15884
4de1981757fc sed -ie 's/gaim/purple/g'
Sean Egan <seanegan@pidgin.im>
parents: 15435
diff changeset
69 const char *jabber_normalize(const PurpleAccount *account, const char *in);
7261
4be05820d441 [gaim-migrate @ 7838]
Nathan Walp <nwalp@pidgin.im>
parents: 7014
diff changeset
70
27163
398d47149e2f Add two helper functions useful for matching the 'from' attribute on packets to either our server or our account.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
71 /* Returns true if JID is the bare JID of our account. */
398d47149e2f Add two helper functions useful for matching the 'from' attribute on packets to either our server or our account.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
72 gboolean jabber_is_own_account(JabberStream *js, const char *jid);
398d47149e2f Add two helper functions useful for matching the 'from' attribute on packets to either our server or our account.
Paul Aurich <darkrain42@pidgin.im>
parents: 26703
diff changeset
73
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
74 PURPLE_XMPP_EXTERN_FOR_TESTS
7310
1346a99cba40 [gaim-migrate @ 7894]
Nathan Walp <nwalp@pidgin.im>
parents: 7306
diff changeset
75 gboolean jabber_nodeprep_validate(const char *);
27728
03b2a20ba465 Validate IPv6 identifiers in the domain portion of a JID.
Paul Aurich <darkrain42@pidgin.im>
parents: 27723
diff changeset
76 gboolean jabber_domain_validate(const char *);
7310
1346a99cba40 [gaim-migrate @ 7894]
Nathan Walp <nwalp@pidgin.im>
parents: 7306
diff changeset
77 gboolean jabber_resourceprep_validate(const char *);
1346a99cba40 [gaim-migrate @ 7894]
Nathan Walp <nwalp@pidgin.im>
parents: 7306
diff changeset
78
29027
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
79 /**
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
80 * Apply the SASLprep profile of stringprep to the string passed in.
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
81 *
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
82 * @returns A newly allocated string containing the normalized version
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
83 * of the input, or NULL if an error occurred (the string could
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
84 * not be normalized)
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
85 */
42436
185c0b83e408 Export some XMPP symbols used in tests
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41791
diff changeset
86 PURPLE_XMPP_EXTERN_FOR_TESTS
29027
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
87 char *jabber_saslprep(const char *);
6af29b140195 jabber: Add SASLprep and the username substitution called for in draft-ietf-sasl-scram-10 5.1.
Paul Aurich <darkrain42@pidgin.im>
parents: 28431
diff changeset
88
29384
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
89 /* state -> readable name */
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
90 const char *jabber_buddy_state_get_name(JabberBuddyState state);
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
91 /* state -> core id */
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
92 const char *jabber_buddy_state_get_status_id(JabberBuddyState state);
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
93 /* state -> show attr (for presence stanza) */
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
94 const char *jabber_buddy_state_get_show(JabberBuddyState state);
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
95 /* core id -> state */
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
96 JabberBuddyState jabber_buddy_status_id_get_state(const char *id);
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
97 /* show attr (presence stanza) -> state */
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
98 JabberBuddyState jabber_buddy_show_get_state(const char *id);
b7b6be8f77fd jabber: Move those functions to jutil.[ch]
Paul Aurich <darkrain42@pidgin.im>
parents: 29336
diff changeset
99
39819
3554dac2991b Standardize all protocol header guard macros.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents: 39556
diff changeset
100 #endif /* PURPLE_JABBER_JUTIL_H */

mercurial