Move connection notification, fix capdefs and tests

This commit is contained in:
Null User 2021-10-30 07:26:47 +00:00
parent d73f0794eb
commit 8207859c7a
3 changed files with 18 additions and 7 deletions

View File

@ -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 .

View File

@ -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
)

View File

@ -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)
}