mirror of
https://github.com/weechat/weechat.git
synced 2026-06-28 22:06:38 +02:00
irc: evaluate content of server option "addresses"
This commit is contained in:
@@ -1593,7 +1593,8 @@ irc_config_server_new_option (struct t_config_file *config_file,
|
||||
config_file, section,
|
||||
option_name, "string",
|
||||
N_("list of hostname/port or IP/port for server (separated by "
|
||||
"comma)"),
|
||||
"comma) "
|
||||
"(note: content is evaluated, see /help eval)"),
|
||||
NULL, 0, 0,
|
||||
default_value, value,
|
||||
null_value_allowed,
|
||||
|
||||
@@ -408,7 +408,7 @@ void
|
||||
irc_server_set_addresses (struct t_irc_server *server, const char *addresses)
|
||||
{
|
||||
int i;
|
||||
char *pos, *error;
|
||||
char *pos, *error, *addresses_eval;
|
||||
long number;
|
||||
|
||||
/* free data */
|
||||
@@ -432,8 +432,11 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses)
|
||||
/* set new addresses/ports */
|
||||
if (addresses && addresses[0])
|
||||
{
|
||||
addresses_eval = weechat_string_eval_expression (addresses,
|
||||
NULL, NULL, NULL);
|
||||
server->addresses_array = weechat_string_split (
|
||||
addresses, ",", 0, 0, &server->addresses_count);
|
||||
(addresses_eval) ? addresses_eval : addresses,
|
||||
",", 0, 0, &server->addresses_count);
|
||||
server->ports_array = malloc (
|
||||
server->addresses_count * sizeof (server->ports_array[0]));
|
||||
server->retry_array = malloc (
|
||||
@@ -456,6 +459,8 @@ irc_server_set_addresses (struct t_irc_server *server, const char *addresses)
|
||||
}
|
||||
server->retry_array[i] = 0;
|
||||
}
|
||||
if (addresses_eval)
|
||||
free (addresses_eval);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user