Merge pull request #1029 from slingamn/rehash_logline.1

make it clearer when rehash has completed
This commit is contained in:
Shivaram Lingamneni 2020-05-18 09:35:31 -07:00 committed by GitHub
commit 2ab4b545da
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 11 deletions

View File

@ -2238,14 +2238,18 @@ func quitHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
// REHASH // REHASH
func rehashHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool { func rehashHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *ResponseBuffer) bool {
server.logger.Info("server", fmt.Sprintf("REHASH command used by %s", client.nick)) nick := client.Nick()
server.logger.Info("server", "REHASH command used by", nick)
err := server.rehash() err := server.rehash()
if err == nil { if err == nil {
rb.Add(nil, server.name, RPL_REHASHING, client.nick, "ircd.yaml", client.t("Rehashing")) // we used to send RPL_REHASHING here but i don't think it really makes sense
// in the labeled-response world, since the intent is "rehash in progress" but
// it won't display until the rehash is actually complete
// TODO all operators should get a notice of some kind here
rb.Notice(client.t("Rehash complete"))
} else { } else {
server.logger.Error("server", fmt.Sprintln("Failed to rehash:", err.Error())) rb.Add(nil, server.name, ERR_UNKNOWNERROR, nick, "REHASH", err.Error())
rb.Add(nil, server.name, ERR_UNKNOWNERROR, client.nick, "REHASH", err.Error())
} }
return false return false
} }

View File

@ -141,10 +141,7 @@ func (server *Server) Run() {
case <-server.rehashSignal: case <-server.rehashSignal:
go func() { go func() {
server.logger.Info("server", "Rehashing due to SIGHUP") server.logger.Info("server", "Rehashing due to SIGHUP")
err := server.rehash() server.rehash()
if err != nil {
server.logger.Error("server", fmt.Sprintln("Failed to rehash:", err.Error()))
}
}() }()
} }
} }
@ -451,7 +448,7 @@ func (client *Client) rplWhoReply(channel *Channel, target *Client, rb *Response
// rehash reloads the config and applies the changes from the config file. // rehash reloads the config and applies the changes from the config file.
func (server *Server) rehash() error { func (server *Server) rehash() error {
server.logger.Debug("server", "Starting rehash") server.logger.Info("server", "Attempting rehash")
// only let one REHASH go on at a time // only let one REHASH go on at a time
server.rehashMutex.Lock() server.rehashMutex.Lock()
@ -461,14 +458,17 @@ func (server *Server) rehash() error {
config, err := LoadConfig(server.configFilename) config, err := LoadConfig(server.configFilename)
if err != nil { if err != nil {
return fmt.Errorf("Error loading config file config: %s", err.Error()) server.logger.Error("server", "failed to load config file", err.Error())
return err
} }
err = server.applyConfig(config) err = server.applyConfig(config)
if err != nil { if err != nil {
return fmt.Errorf("Error applying config changes: %s", err.Error()) server.logger.Error("server", "Failed to rehash", err.Error())
return err
} }
server.logger.Info("server", "Rehash completed successfully")
return nil return nil
} }