degesch: add support for server passwords

This commit is contained in:
Přemysl Eric Janouch 2015-05-20 21:18:15 +02:00
parent 4016c387f8
commit 0260fcd02e
1 changed files with 8 additions and 0 deletions

View File

@ -1319,6 +1319,10 @@ static struct config_schema g_config_server[] =
.comment = "Addresses of the IRC network (e.g. \"irc.net:6667\")", .comment = "Addresses of the IRC network (e.g. \"irc.net:6667\")",
.type = CONFIG_ITEM_STRING_ARRAY, .type = CONFIG_ITEM_STRING_ARRAY,
.validate = config_validate_addresses }, .validate = config_validate_addresses },
{ .name = "password",
.comment = "Password to connect to the server, if any",
.type = CONFIG_ITEM_STRING,
.validate = config_validate_nonjunk_string },
{ .name = "ssl", { .name = "ssl",
.comment = "Whether to use SSL/TLS", .comment = "Whether to use SSL/TLS",
@ -3314,6 +3318,10 @@ irc_register (struct server *s)
const char *realname = get_config_string (s->config, "realname"); const char *realname = get_config_string (s->config, "realname");
hard_assert (nickname && username && realname); hard_assert (nickname && username && realname);
const char *password = get_config_string (s->config, "password");
if (password)
irc_send (s, "PASS :%s", password);
irc_send (s, "NICK %s", nickname); irc_send (s, "NICK %s", nickname);
// IRC servers may ignore the last argument if it's empty // IRC servers may ignore the last argument if it's empty
irc_send (s, "USER %s 8 * :%s", username, *realname ? realname : " "); irc_send (s, "USER %s 8 * :%s", username, *realname ? realname : " ");