--- a/libpurple/protocols/jabber/auth_digest_md5.h Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/auth_digest_md5.h Thu Oct 26 22:35:00 2023 -0500
@@ -25,6 +25,8 @@
#ifndef PURPLE_JABBER_AUTH_DIGEST_MD5_H
#define PURPLE_JABBER_AUTH_DIGEST_MD5_H
* Every function in this file is ONLY exposed for tests.
* DO NOT USE ANYTHING HERE OR YOU WILL BE SENT TO THE PIT OF DESPAIR.
@@ -33,6 +35,7 @@
* Parse a DIGEST-MD5 challenge.
+PURPLE_XMPP_EXTERN_FOR_TESTS GHashTable *jabber_auth_digest_md5_parse(const char *challenge);
#endif /* PURPLE_JABBER_AUTH_DIGEST_MD5_H */
--- a/libpurple/protocols/jabber/auth_scram.h Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/auth_scram.h Thu Oct 26 22:35:00 2023 -0500
@@ -65,6 +65,7 @@
* NOT null-terminated and its length is the length of the binary
* output of the hash function in-use.
+PURPLE_XMPP_EXTERN_FOR_TESTS guchar *jabber_scram_hi(const JabberScramHash *hash, const GString *str,
GString *salt, guint iterations);
@@ -79,17 +80,20 @@
* @returns TRUE if the proofs were successfully calculated. FALSE otherwise.
+PURPLE_XMPP_EXTERN_FOR_TESTS gboolean jabber_scram_calc_proofs(JabberScramData *data, GString *salt,
* Feed the algorithm with the data from the server.
+PURPLE_XMPP_EXTERN_FOR_TESTS gboolean jabber_scram_feed_parser(JabberScramData *data, gchar *in, gchar **out);
* Clean up and destroy the data struct
+PURPLE_XMPP_EXTERN_FOR_TESTS void jabber_scram_data_destroy(JabberScramData *data);
#endif /* PURPLE_JABBER_AUTH_SCRAM_H */
--- a/libpurple/protocols/jabber/caps.h Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/caps.h Thu Oct 26 22:35:00 2023 -0500
@@ -68,6 +68,7 @@
* @param hash_type GChecksumType to be used. Either sha-1 or md5.
* @return The base64 encoded SHA-1 hash; must be freed by caller
+PURPLE_XMPP_EXTERN_FOR_TESTS gchar *jabber_caps_calculate_hash(JabberCapsClientInfo *info,
GChecksumType hash_type);
@@ -95,6 +96,7 @@
* @param query The 'query' element from an IQ reply stanza.
* @returns A JabberCapsClientInfo struct, or NULL on error
+PURPLE_XMPP_EXTERN_FOR_TESTS JabberCapsClientInfo *jabber_caps_parse_client_info(PurpleXmlNode *query);
@@ -105,6 +107,7 @@
* @param info The info object to free.
+PURPLE_XMPP_EXTERN_FOR_TESTS void jabber_caps_client_info_destroy(JabberCapsClientInfo *info);
#endif /* PURPLE_JABBER_CAPS_H */
--- a/libpurple/protocols/jabber/jabber.h Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/jabber.h Thu Oct 26 22:35:00 2023 -0500
@@ -59,6 +59,12 @@
+#ifdef PURPLE_XMPP_COMPILATION +#define PURPLE_XMPP_EXTERN_FOR_TESTS _PURPLE_EXPORT extern +#define PURPLE_XMPP_EXTERN_FOR_TESTS _PURPLE_IMPORT extern --- a/libpurple/protocols/jabber/jutil.h Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/jutil.h Thu Oct 26 22:35:00 2023 -0500
@@ -44,6 +44,7 @@
+PURPLE_XMPP_EXTERN_FOR_TESTS JabberID* jabber_id_new(const char *str);
@@ -52,20 +53,25 @@
gboolean jabber_id_equal(const JabberID *jid1, const JabberID *jid2);
+PURPLE_XMPP_EXTERN_FOR_TESTS void jabber_id_free(JabberID *jid);
+PURPLE_XMPP_EXTERN_FOR_TESTS char *jabber_get_resource(const char *jid);
+PURPLE_XMPP_EXTERN_FOR_TESTS char *jabber_get_bare_jid(const char *jid);
char *jabber_id_get_bare_jid(const JabberID *jid);
char *jabber_id_get_full_jid(const JabberID *jid);
gboolean jabber_jid_is_domain(const char *jid);
+PURPLE_XMPP_EXTERN_FOR_TESTS const char *jabber_normalize(const PurpleAccount *account, const char *in);
/* Returns true if JID is the bare JID of our account. */
gboolean jabber_is_own_account(JabberStream *js, const char *jid);
+PURPLE_XMPP_EXTERN_FOR_TESTS gboolean jabber_nodeprep_validate(const char *);
gboolean jabber_domain_validate(const char *);
gboolean jabber_resourceprep_validate(const char *);
@@ -77,6 +83,7 @@
* of the input, or NULL if an error occurred (the string could
+PURPLE_XMPP_EXTERN_FOR_TESTS char *jabber_saslprep(const char *);
/* state -> readable name */
--- a/libpurple/protocols/jabber/meson.build Thu Oct 26 22:24:08 2023 -0500
+++ b/libpurple/protocols/jabber/meson.build Thu Oct 26 22:35:00 2023 -0500
@@ -90,7 +90,7 @@
JABBER_SOURCES += xmpp_resources
jabber_prpl = shared_library('jabber', JABBER_SOURCES,
- c_args : ['-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-XMPP"'],
+ c_args : ['-DPURPLE_XMPP_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Purple-XMPP"'], link_args : jabber_link_args,
dependencies : [gstreamer, idn, libxml, libpurple_dep, libsoup, glib, gio, math, ws2_32],