1
0
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:
Sébastien Helleu
2016-01-02 10:12:40 +01:00
parent 3330724574
commit 522dcf133c
21 changed files with 128 additions and 43 deletions
+2 -1
View File
@@ -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,
+7 -2
View File
@@ -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);
}
}