Thu, 26 Oct 2023 22:35:00 -0500
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 | 1 | /** |
| 2 | * @file jutil.h utility functions | |
| 3 | * | |
| 15884 | 4 | * purple |
| 7014 | 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 | 9 | * |
| 10 | * This program is free software; you can redistribute it and/or modify | |
| 11 | * it under the terms of the GNU General Public License as published by | |
| 12 | * the Free Software Foundation; either version 2 of the License, or | |
| 13 | * (at your option) any later version. | |
| 14 | * | |
| 15 | * This program is distributed in the hope that it will be useful, | |
| 16 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 17 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 18 | * GNU General Public License for more details. | |
| 19 | * | |
| 20 | * You should have received a copy of the GNU General Public License | |
| 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 | 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 | 27 | |
|
39556
622bf98df0ac
Remove unnecessary struct tags.
Elliott Sales de Andrade <qulogic@pidgin.im>
parents:
38327
diff
changeset
|
28 | typedef struct { |
| 7014 | 29 | char *node; |
| 30 | char *domain; | |
| 31 | char *resource; | |
| 32 | } JabberID; | |
| 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 | 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 | 57 | void jabber_id_free(JabberID *jid); |
| 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 | 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 | 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 | 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 | 69 | const char *jabber_normalize(const PurpleAccount *account, const char *in); |
| 7261 | 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 | 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 | 77 | gboolean jabber_resourceprep_validate(const char *); |
| 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 */ |