Fix PASS handling

This commit is contained in:
Daniel Oaks 2016-06-28 16:06:17 +10:00
parent bded3202c2
commit 41473bb444
2 changed files with 8 additions and 1 deletions

View File

@ -51,6 +51,7 @@ type Config struct {
Server struct { Server struct {
PassConfig PassConfig
Password string
Name string Name string
Database string Database string
Listen []string Listen []string
@ -109,6 +110,11 @@ func LoadConfig(filename string) (config *Config, err error) {
return nil, err return nil, err
} }
// we need this so PasswordBytes returns the correct info
if config.Server.Password != "" {
config.Server.PassConfig.Password = config.Server.Password
}
if config.Network.Name == "" { if config.Network.Name == "" {
return nil, errors.New("Network name missing") return nil, errors.New("Network name missing")
} }

View File

@ -341,7 +341,8 @@ func passHandler(server *Server, client *Client, msg ircmsg.IrcMessage) bool {
// check the provided password // check the provided password
password := []byte(msg.Params[0]) password := []byte(msg.Params[0])
if ComparePassword(server.password, password) != nil { if ComparePassword(server.password, password) != nil {
client.Quit("bad password") client.Send(nil, server.nameString, ERR_PASSWDMISMATCH, client.nickString, "Password incorrect")
client.Send(nil, server.nameString, "ERROR", "Password incorrect")
return true return true
} }