Merge pull request #719 from LemonBoy/sasl-disable-none

Setting sasl_mechanism to '' disables the auth

(cherry picked from commit 7b97edf9d1de8c270e4482c85d142303e07525c9)
This commit is contained in:
ailin-nemui 2017-07-26 10:57:05 +02:00
parent 29f0ed96d5
commit 32d0daf87e
3 changed files with 7 additions and 6 deletions

View File

@ -36,6 +36,7 @@
-sasl_mechanism Specifies the mechanism to use for the SASL authentication. -sasl_mechanism Specifies the mechanism to use for the SASL authentication.
At the moment irssi only supports the 'plain' and the At the moment irssi only supports the 'plain' and the
'external' mechanisms. 'external' mechanisms.
Use '' to disable the authentication.
-sasl_username Specifies the username to use during the SASL authentication. -sasl_username Specifies the username to use during the SASL authentication.
-sasl_password Specifies the password to use during the SASL authentication. -sasl_password Specifies the password to use during the SASL authentication.

View File

@ -163,11 +163,11 @@ static void cmd_network_add_modify(const char *data, gboolean add)
/* the validity of the parameters is checked in sig_server_setup_fill_chatnet */ /* the validity of the parameters is checked in sig_server_setup_fill_chatnet */
value = g_hash_table_lookup(optlist, "sasl_mechanism"); value = g_hash_table_lookup(optlist, "sasl_mechanism");
if (value != NULL && *value != '\0') rec->sasl_mechanism = g_strdup(value); if (value != NULL) rec->sasl_mechanism = *value != '\0' ? g_strdup(value) : NULL;
value = g_hash_table_lookup(optlist, "sasl_username"); value = g_hash_table_lookup(optlist, "sasl_username");
if (value != NULL && *value != '\0') rec->sasl_username = g_strdup(value); if (value != NULL) rec->sasl_username = *value != '\0' ? g_strdup(value) : NULL;
value = g_hash_table_lookup(optlist, "sasl_password"); value = g_hash_table_lookup(optlist, "sasl_password");
if (value != NULL && *value != '\0') rec->sasl_password = g_strdup(value); if (value != NULL) rec->sasl_password = *value != '\0' ? g_strdup(value) : NULL;
ircnet_create(rec); ircnet_create(rec);
printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_NETWORK_ADDED, name); printformat(NULL, NULL, MSGLEVEL_CLIENTNOTICE, IRCTXT_NETWORK_ADDED, name);

View File

@ -89,6 +89,8 @@ static void sig_server_setup_fill_chatnet(IRC_SERVER_CONNECT_REC *conn,
/* Validate the SASL parameters filled by sig_chatnet_read() or cmd_network_add */ /* Validate the SASL parameters filled by sig_chatnet_read() or cmd_network_add */
conn->sasl_mechanism = SASL_MECHANISM_NONE; conn->sasl_mechanism = SASL_MECHANISM_NONE;
conn->sasl_username = NULL;
conn->sasl_password = NULL;
if (ircnet->sasl_mechanism != NULL) { if (ircnet->sasl_mechanism != NULL) {
if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, "plain")) { if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, "plain")) {
@ -102,9 +104,7 @@ static void sig_server_setup_fill_chatnet(IRC_SERVER_CONNECT_REC *conn,
g_warning("The fields sasl_username and sasl_password are either missing or empty"); g_warning("The fields sasl_username and sasl_password are either missing or empty");
} }
else if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, "external")) { else if (!g_ascii_strcasecmp(ircnet->sasl_mechanism, "external")) {
conn->sasl_mechanism = SASL_MECHANISM_EXTERNAL; conn->sasl_mechanism = SASL_MECHANISM_EXTERNAL;
conn->sasl_username = NULL;
conn->sasl_password = NULL;
} }
else else
g_warning("Unsupported SASL mechanism \"%s\" selected", ircnet->sasl_mechanism); g_warning("Unsupported SASL mechanism \"%s\" selected", ircnet->sasl_mechanism);