--- a/libpurple/protocols/irc/irc.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/irc/irc.c Thu Aug 11 21:56:21 2022 -0500
@@ -413,7 +413,6 @@
option = purple_account_option_bool_new(_("Use SSL"), "ssl", FALSE);
opts = g_list_append(opts, option);
option = purple_account_option_bool_new(_("Authenticate with SASL"),
opts = g_list_append(opts, option);
@@ -422,7 +421,6 @@
"unencrypted connection"),
"auth_plain_in_clear", FALSE);
opts = g_list_append(opts, option);
@@ -601,16 +599,12 @@
const char *nickname, *identname, *realname;
struct irc_conn *irc = purple_connection_get_protocol_data(gc);
const char *pass = purple_connection_get_password(gc);
const gboolean use_sasl = purple_account_get_bool(irc->account, "sasl", FALSE);
buf = irc_format(irc, "vv:", "CAP", "REQ", "sasl");
- else /* intended to fall through */
buf = irc_format(irc, "v:", "PASS", pass);
if (irc_send(irc, buf) < 0) {
@@ -728,7 +722,6 @@
sasl_dispose(&irc->sasl_conn);
@@ -736,7 +729,6 @@
g_string_free(irc->sasl_mechs, TRUE);
--- a/libpurple/protocols/irc/irc.h Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/irc/irc.h Thu Aug 11 21:56:21 2022 -0500
@@ -26,9 +26,7 @@
@@ -97,13 +95,11 @@
const char *current_mech;
sasl_callback_t *sasl_cb;
@@ -181,14 +177,12 @@
void irc_msg_wallops(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_whois(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_who(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_cap(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_auth(struct irc_conn *irc, char *arg);
void irc_msg_authenticate(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_authok(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_authtryagain(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_msg_authfail(struct irc_conn *irc, const char *name, const char *from, char **args);
void irc_cmd_table_build(struct irc_conn *irc);
--- a/libpurple/protocols/irc/msgs.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/irc/msgs.c Thu Aug 11 21:56:21 2022 -0500
@@ -35,9 +35,7 @@
static char *irc_mask_nick(const char *mask);
static char *irc_mask_userhost(const char *mask);
@@ -49,9 +47,7 @@
const char *from, const char *to,
const char *rawmsg, gboolean notice);
static void irc_sasl_finish(struct irc_conn *irc);
static char *irc_mask_nick(const char *mask)
@@ -1464,7 +1460,6 @@
irc_sasl_cb_secret(sasl_conn_t *conn, void *ctx, int id, sasl_secret_t **secret)
@@ -1862,4 +1857,3 @@
--- a/libpurple/protocols/irc/parse.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/irc/parse.c Thu Aug 11 21:56:21 2022 -0500
@@ -104,7 +104,6 @@
{ "501", "n:", 2, irc_msg_badmode }, /* Unknown mode flag */
{ "506", "nc:", 3, irc_msg_nosend }, /* Must identify to send */
{ "515", "nc:", 3, irc_msg_regonly }, /* Registration required */
{ "903", "*", 0, irc_msg_authok}, /* SASL auth successful */
{ "904", "*", 0, irc_msg_authtryagain }, /* SASL auth failed, can recover*/
{ "905", "*", 0, irc_msg_authfail }, /* SASL auth failed */
@@ -112,7 +111,6 @@
{ "907", "*", 0, irc_msg_authfail }, /* SASL auth failed */
{ "cap", "vv:", 3, irc_msg_cap }, /* SASL capable */
{ "authenticate", ":", 1, irc_msg_authenticate }, /* SASL authenticate */
{ "invite", "n:", 2, irc_msg_invite }, /* Invited */
{ "join", ":", 1, irc_msg_join }, /* Joined a channel */
{ "kick", "cn:", 3, irc_msg_kick }, /* KICK */
@@ -715,11 +713,9 @@
purple_connection_take_error(gc, error);
} else if (!strncmp(input, "AUTHENTICATE ", 13)) {
irc_msg_auth(irc, input + 13);
if (input[0] != ':' || (cur = strchr(input, ' ')) == NULL) {
--- a/libpurple/protocols/jabber/auth.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/jabber/auth.c Thu Aug 11 21:56:21 2022 -0500
@@ -73,7 +73,6 @@
_("Server requires plaintext authentication over an unencrypted stream"));
auth_old_pass_cb(PurpleConnection *gc, PurpleRequestFields *fields)
@@ -122,7 +121,6 @@
/* Disable the account as the user has cancelled connecting */
purple_account_set_enabled(purple_connection_get_account(gc), FALSE);
jabber_auth_start(JabberStream *js, PurpleXmlNode *packet)
@@ -366,17 +364,14 @@
js->user->resource = g_strdup("Home");
- /* If we have Cyrus SASL, then passwords will have been set
- * to OPTIONAL for this protocol. So, we need to do our own
- * password prompting here
+ /* With Cyrus SASL, passwords are optional for this protocol. So, we need to + * do our own password prompting here if (!purple_connection_get_password(js->gc)) {
purple_account_request_password(account, G_CALLBACK(auth_old_pass_cb), G_CALLBACK(auth_no_pass_cb), js->gc);
iq = jabber_iq_new_query(js, JABBER_IQ_GET, "jabber:iq:auth");
query = purple_xmlnode_get_child(iq->node, "query");
@@ -519,9 +514,7 @@
jabber_auth_add_mech(jabber_auth_get_plain_mech());
jabber_auth_add_mech(jabber_auth_get_digest_md5_mech());
jabber_auth_add_mech(jabber_auth_get_cyrus_mech());
jabber_auth_add_mech(jabber_auth_get_webex_token_mech());
--- a/libpurple/protocols/jabber/auth.h Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/jabber/auth.h Thu Aug 11 21:56:21 2022 -0500
@@ -56,9 +56,7 @@
JabberSaslMech *jabber_auth_get_plain_mech(void);
JabberSaslMech *jabber_auth_get_digest_md5_mech(void);
JabberSaslMech **jabber_auth_get_scram_mechs(gint *count);
JabberSaslMech *jabber_auth_get_cyrus_mech(void);
JabberSaslMech *jabber_auth_get_webex_token_mech(void);
void jabber_auth_add_mech(JabberSaslMech *);
--- a/libpurple/protocols/jabber/jabber.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/jabber/jabber.c Thu Aug 11 21:56:21 2022 -0500
@@ -463,7 +463,6 @@
/* If we've got a security layer, we need to encode the data,
* splitting it on the maximum buffer length negotiated */
@@ -502,7 +501,6 @@
jabber_bosh_connection_send(js->bosh, data);
@@ -618,7 +616,6 @@
purple_connection_update_last_received(gc);
if (js->sasl_maxbuf > 0) {
@@ -643,7 +640,6 @@
return G_SOURCE_CONTINUE;
purple_debug_misc("jabber", "Recv (%" G_GSSIZE_FORMAT "): %s", len,
@@ -1588,7 +1584,6 @@
if (js->auth_mech && js->auth_mech->dispose)
js->auth_mech->dispose(js);
@@ -1597,7 +1592,6 @@
/* Note: _not_ g_free. See auth_cyrus.c:jabber_sasl_cb_secret */
g_free(js->sasl_password);
g_list_free_full(js->commands, (GDestroyNotify)jabber_adhoc_commands_free);
@@ -3638,7 +3632,6 @@
const gchar *type = "pc"; /* default client type, if unknown or
const gchar *ui_name = NULL;
/* We really really only want to do this once per process */
static gboolean sasl_initialized = FALSE;
@@ -3646,10 +3639,8 @@
/* XXX - If any other plugin wants SASL this won't be good ... */
@@ -3667,7 +3658,6 @@
SetErrorMode(old_error_mode);
jabber_cmds = g_hash_table_new_full(g_direct_hash, g_direct_equal, NULL, cmds_free_func);
--- a/libpurple/protocols/jabber/jabber.h Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/jabber/jabber.h Thu Aug 11 21:56:21 2022 -0500
@@ -69,9 +69,7 @@
#define CAPS0115_NODE "https://pidgin.im/"
@@ -196,7 +194,6 @@
sasl_callback_t *sasl_cb;
sasl_secret_t *sasl_secret;
@@ -208,7 +205,6 @@
PurpleAccountUnregistrationCb unregistration_cb;
--- a/libpurple/protocols/jabber/xmpp.c Thu Aug 11 21:26:10 2022 -0500
+++ b/libpurple/protocols/jabber/xmpp.c Thu Aug 11 21:56:21 2022 -0500
@@ -129,11 +129,8 @@
PurpleProtocolOptions options;
options = OPT_PROTO_CHAT_TOPIC | OPT_PROTO_UNIQUE_CHATNAME |
- OPT_PROTO_MAIL_CHECK | OPT_PROTO_SLASH_COMMANDS_NATIVE;
- options |= OPT_PROTO_PASSWORD_OPTIONAL;
+ OPT_PROTO_MAIL_CHECK | OPT_PROTO_SLASH_COMMANDS_NATIVE | + OPT_PROTO_PASSWORD_OPTIONAL; return PURPLE_PROTOCOL(g_object_new(
--- a/meson.build Thu Aug 11 21:26:10 2022 -0500
+++ b/meson.build Thu Aug 11 21:56:21 2022 -0500
@@ -577,8 +577,7 @@
conf.set('HAVE_' + func.to_upper(),
compiler.has_function(func))
-sasl = dependency('libsasl2', version : '>= 2.0', required : get_option('cyrus-sasl'))
-conf.set('HAVE_CYRUS_SASL', sasl.found())
+sasl = dependency('libsasl2', version : '>= 2.0') #######################################################################
# Check for external libzephyr
--- a/meson_options.txt Thu Aug 11 21:26:10 2022 -0500
+++ b/meson_options.txt Thu Aug 11 21:56:21 2022 -0500
@@ -40,9 +40,6 @@
option('avahi', type : 'feature',
description : 'compile with avahi (required for Bonjour support)')
-option('cyrus-sasl', type : 'feature',
- description : 'enable Cyrus SASL support for XMPP/IRC')
option('dynamic-prpls', type : 'string', value: 'all',
description : 'specify which protocols to build dynamically')