mirror of
https://github.com/weechat/weechat.git
synced 2026-06-29 22:36:38 +02:00
Merge branch 'secured-data'
This commit is contained in:
@@ -317,23 +317,32 @@ irc_server_strncasecmp (struct t_irc_server *server,
|
||||
int
|
||||
irc_server_sasl_enabled (struct t_irc_server *server)
|
||||
{
|
||||
int sasl_mechanism;
|
||||
const char *sasl_username, *sasl_password;
|
||||
int sasl_mechanism, rc;
|
||||
char *sasl_username, *sasl_password;
|
||||
|
||||
sasl_mechanism = IRC_SERVER_OPTION_INTEGER(server,
|
||||
IRC_SERVER_OPTION_SASL_MECHANISM);
|
||||
sasl_username = IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_SASL_USERNAME);
|
||||
sasl_password = IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_SASL_PASSWORD);
|
||||
sasl_username = weechat_string_eval_expression (IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_SASL_USERNAME),
|
||||
NULL, NULL);
|
||||
sasl_password = weechat_string_eval_expression (IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_SASL_PASSWORD),
|
||||
NULL, NULL);
|
||||
|
||||
/*
|
||||
* SASL is enabled if using mechanism "external"
|
||||
* or if both username AND password are set
|
||||
*/
|
||||
return ((sasl_mechanism == IRC_SASL_MECHANISM_EXTERNAL)
|
||||
|| (sasl_username && sasl_username[0]
|
||||
&& sasl_password && sasl_password[0])) ? 1 : 0;
|
||||
rc = ((sasl_mechanism == IRC_SASL_MECHANISM_EXTERNAL)
|
||||
|| (sasl_username && sasl_username[0]
|
||||
&& sasl_password && sasl_password[0])) ? 1 : 0;
|
||||
|
||||
if (sasl_username)
|
||||
free (sasl_username);
|
||||
if (sasl_password)
|
||||
free (sasl_password);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1176,9 +1185,11 @@ irc_server_alloc_with_url (const char *irc_url)
|
||||
}
|
||||
}
|
||||
if (pos_password && pos_password[0])
|
||||
{
|
||||
weechat_config_option_set (ptr_server->options[IRC_SERVER_OPTION_PASSWORD],
|
||||
pos_password,
|
||||
1);
|
||||
}
|
||||
weechat_config_option_set (ptr_server->options[IRC_SERVER_OPTION_AUTOCONNECT],
|
||||
"on",
|
||||
1);
|
||||
@@ -3039,10 +3050,12 @@ irc_server_reconnect_schedule (struct t_irc_server *server)
|
||||
void
|
||||
irc_server_login (struct t_irc_server *server)
|
||||
{
|
||||
const char *password, *username, *realname, *capabilities;
|
||||
char *username2;
|
||||
const char *username, *realname, *capabilities;
|
||||
char *password, *username2;
|
||||
|
||||
password = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_PASSWORD);
|
||||
password = weechat_string_eval_expression (IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_PASSWORD),
|
||||
NULL, NULL);
|
||||
username = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_USERNAME);
|
||||
realname = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_REALNAME);
|
||||
capabilities = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_CAPABILITIES);
|
||||
@@ -3050,6 +3063,9 @@ irc_server_login (struct t_irc_server *server)
|
||||
if (password && password[0])
|
||||
irc_server_sendf (server, 0, NULL, "PASS %s", password);
|
||||
|
||||
if (password)
|
||||
free (password);
|
||||
|
||||
if (!server->nick)
|
||||
{
|
||||
irc_server_set_nick (server,
|
||||
@@ -4104,7 +4120,7 @@ void
|
||||
irc_server_autojoin_channels (struct t_irc_server *server)
|
||||
{
|
||||
struct t_irc_channel *ptr_channel;
|
||||
const char *autojoin;
|
||||
char *autojoin;
|
||||
|
||||
/* auto-join after disconnection (only rejoins opened channels) */
|
||||
if (!server->disable_autojoin && server->reconnect_join && server->channels)
|
||||
@@ -4136,9 +4152,13 @@ irc_server_autojoin_channels (struct t_irc_server *server)
|
||||
else
|
||||
{
|
||||
/* auto-join when connecting to server for first time */
|
||||
autojoin = IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_AUTOJOIN);
|
||||
autojoin = weechat_string_eval_expression (IRC_SERVER_OPTION_STRING(server,
|
||||
IRC_SERVER_OPTION_AUTOJOIN),
|
||||
NULL, NULL);
|
||||
if (!server->disable_autojoin && autojoin && autojoin[0])
|
||||
irc_command_join_server (server, autojoin, 0, 0);
|
||||
if (autojoin)
|
||||
free (autojoin);
|
||||
}
|
||||
|
||||
server->disable_autojoin = 0;
|
||||
|
||||
Reference in New Issue
Block a user