-
Notifications
You must be signed in to change notification settings - Fork 231
k-lines produce a QUIT snotice without a preceding CONNECT #1941
Copy link
Copy link
Closed
Labels
Description
reported by @tacerus and @xnaas
See #1303 for a similar issue. K-lines are processed only after the user completes connection registration and obtains a nickname:
Line 372 in 2a3b8e6
| // check KLINEs (#671: ignore KLINEs for loopback connections) |
If the user is k-lined, registration is stopped before playRegistrationBurst, which also sends the CONNECT snotice:
Line 403 in 2a3b8e6
| 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)) |
however, (*Client).destroy() sees that the client is in fact registered and sends a QUIT snotice:
Line 1349 in 2a3b8e6
| client.server.snomasks.Send(sno.LocalQuits, fmt.Sprintf(ircfmt.Unescape("%s$r exited the network"), details.nick)) |
causing confusion.
We should probably just special-case k-lines and prevent them from sending the QUIT snotice?
Reactions are currently unavailable