|
@@ -131,8 +131,11 @@ func ubanHandler(server *Server, client *Client, msg ircmsg.IrcMessage, rb *Resp
|
131
|
131
|
}
|
132
|
132
|
}
|
133
|
133
|
|
134
|
|
-func sessionsForCIDR(server *Server, cidr flatip.IPNet, exclude *Session) (sessions []*Session, nicks []string) {
|
|
134
|
+func sessionsForCIDR(server *Server, cidr flatip.IPNet, exclude *Session, requireSASL bool) (sessions []*Session, nicks []string) {
|
135
|
135
|
for _, client := range server.clients.AllClients() {
|
|
136
|
+ if requireSASL && client.Account() != "" {
|
|
137
|
+ continue
|
|
138
|
+ }
|
136
|
139
|
for _, session := range client.Sessions() {
|
137
|
140
|
seen := false
|
138
|
141
|
if session != exclude && cidr.Contains(flatip.FromNetIP(session.IP())) {
|
|
@@ -177,7 +180,7 @@ func ubanAddCIDR(client *Client, target ubanTarget, duration time.Duration, requ
|
177
|
180
|
return
|
178
|
181
|
}
|
179
|
182
|
|
180
|
|
- sessions, nicks := sessionsForCIDR(client.server, target.cidr, rb.session)
|
|
183
|
+ sessions, nicks := sessionsForCIDR(client.server, target.cidr, rb.session, requireSASL)
|
181
|
184
|
for _, session := range sessions {
|
182
|
185
|
session.client.Quit("You have been banned from this server", session)
|
183
|
186
|
session.client.destroy(session)
|
|
@@ -329,7 +332,7 @@ func ubanInfoCIDR(client *Client, target ubanTarget, rb *ResponseBuffer) {
|
329
|
332
|
rb.Notice(fmt.Sprintf(client.t("There is no active IP ban against %s"), str))
|
330
|
333
|
}
|
331
|
334
|
|
332
|
|
- sessions, nicks := sessionsForCIDR(client.server, target.cidr, nil)
|
|
335
|
+ sessions, nicks := sessionsForCIDR(client.server, target.cidr, nil, false)
|
333
|
336
|
if len(sessions) != 0 {
|
334
|
337
|
rb.Notice(fmt.Sprintf(client.t("There are %[1]d active client(s) from %[2]s, associated with %[3]d nickname(s):"), len(sessions), target.cidr.String(), len(nicks)))
|
335
|
338
|
for _, line := range utils.BuildTokenLines(400, nicks, " ") {
|