diff options
author | TingPing <tingping@tingping.se> | 2014-01-11 16:08:50 -0500 |
---|---|---|
committer | TingPing <tingping@tingping.se> | 2014-01-11 16:08:50 -0500 |
commit | 6e049d59752ff5b7b7d281a9dff2c6df0b3195e5 (patch) | |
tree | 8204b24deb143ae466fecb5b872c19ec6428c63c | |
parent | b2a780e97aa9edec3d30d13ea17fe39bd8e81553 (diff) |
Login when /server is used on known hostname
This brings back old behavior where you can /server to another server in the same network and login with services but now is only sent when the server is known not every time so more secure.
-rw-r--r-- | src/common/outbound.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/common/outbound.c b/src/common/outbound.c index 7d64e65f..5047bfcd 100644 --- a/src/common/outbound.c +++ b/src/common/outbound.c @@ -3336,6 +3336,7 @@ cmd_server (struct session *sess, char *tbuf, char *word[], char *word_eol[]) int use_ssl = FALSE; int is_url = TRUE; server *serv = sess->server; + ircnet *net = NULL; #ifdef USE_OPENSSL /* BitchX uses -ssl, mIRC uses -e, let's support both */ @@ -3392,7 +3393,17 @@ cmd_server (struct session *sess, char *tbuf, char *word[], char *word_eol[]) } else { - serv->password[0] = 0; + /* If part of a known network, login like normal */ + net = servlist_net_find_from_server (server_name); + if (net) + { + safe_strcpy (serv->password, net->pass, sizeof (serv->password)); + serv->loginmethod = net->logintype; + } + else /* Otherwise ensure no password is sent */ + { + serv->password[0] = 0; + } } #ifdef USE_OPENSSL |