From 8207859c7a37ee200fb066f1e6ce222ffa6e2de2 Mon Sep 17 00:00:00 2001 From: Null User Date: Sat, 30 Oct 2021 07:26:47 +0000 Subject: [PATCH] Move connection notification, fix capdefs and tests --- Makefile | 1 - irc/caps/defs.go | 2 +- irc/server.go | 22 +++++++++++++++++----- 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 0ecc5622..7f193cdb 100644 --- a/Makefile +++ b/Makefile @@ -30,7 +30,6 @@ test: cd irc/isupport && go test . && go vet . cd irc/migrations && go test . && go vet . cd irc/modes && go test . && go vet . - cd irc/mysql && go test . && go vet . cd irc/passwd && go test . && go vet . cd irc/sno && go test . && go vet . cd irc/utils && go test . && go vet . diff --git a/irc/caps/defs.go b/irc/caps/defs.go index e763657f..d8f61a8b 100644 --- a/irc/caps/defs.go +++ b/irc/caps/defs.go @@ -7,7 +7,7 @@ package caps const ( // number of recognized capabilities: - numCapabs = 28 + numCapabs = 27 // length of the uint64 array that represents the bitset: bitsetLen = 1 ) diff --git a/irc/server.go b/irc/server.go index ba6909ba..895cc26e 100644 --- a/irc/server.go +++ b/irc/server.go @@ -337,15 +337,29 @@ func (server *Server) tryRegister(c *Client, session *Session) (exiting bool) { // count new user in statistics (before checking KLINEs, see #1303) server.stats.Register(c.HasMode(modes.Invisible)) + d := c.Details() + logMsg := "Client connected [%s] [u:%s] [r:%s]" + snoMsg := "Client connected [%s] [u:%s] [h:%s] [ip:%s] [r:%s]" + + var isBanned bool // check KLINEs (#671: ignore KLINEs for loopback connections) if !session.IP().IsLoopback() || session.isTor { - isBanned, info := server.klines.CheckMasks(c.AllNickmasks()...) - if isBanned { + klined, info := server.klines.CheckMasks(c.AllNickmasks()...) + if klined { + isBanned = true + logMsg = logMsg + " KLINED" + snoMsg = snoMsg + " KLINED" c.Quit(info.BanMessage(c.t("you got klined. reach out if it was a mistake. (%s)")), nil) - return true } } + server.logger.Info("connect", fmt.Sprintf(logMsg, d.nick, d.username, d.realname)) + server.snomasks.Send(sno.LocalConnects, fmt.Sprintf(snoMsg, d.nick, d.username, session.rawHostname, session.IP().String(), d.realname)) + + if isBanned { + return true + } + server.playRegistrationBurst(session) return false } @@ -367,8 +381,6 @@ func (server *Server) playRegistrationBurst(session *Session) { c := session.client // continue registration d := c.Details() - server.logger.Info("connect", fmt.Sprintf("Client connected [%s] [u:%s] [r:%s]", d.nick, d.username, d.realname)) - server.snomasks.Send(sno.LocalConnects, fmt.Sprintf("Client connected [%s] [u:%s] [h:%s] [ip:%s] [r:%s]", d.nick, d.username, session.rawHostname, session.IP().String(), d.realname)) if d.account != "" { server.sendLoginSnomask(d.nickMask, d.accountName) }