Ignore port to make ban actually work

master
HimbeerserverDE 2021-09-11 12:25:50 +02:00
parent a0ed77943c
commit fdbd728918
No known key found for this signature in database
GPG Key ID: 1A651504791E6A8B
2 changed files with 13 additions and 4 deletions

View File

@ -160,7 +160,7 @@ func (a authSQLite3) Unban(id string) error {
return nil
}
// Banned reports whether a network address is banned
// Banned reports whether a network address is banned.
func (a authSQLite3) Banned(addr *net.UDPAddr) bool {
if err := a.init(); err != nil {
return true
@ -168,7 +168,7 @@ func (a authSQLite3) Banned(addr *net.UDPAddr) bool {
defer a.close()
var name string
if err := a.db.QueryRow(`SELECT name FROM ban WHERE addr = ?;`, addr.String()).Scan(&name); err != nil {
if err := a.db.QueryRow(`SELECT name FROM ban WHERE addr = ?;`, addr.IP.String()).Scan(&name); err != nil {
if errors.Is(err, sql.ErrNoRows) {
return false
}

View File

@ -1,6 +1,10 @@
package proxy
import "github.com/anon55555/mt"
import (
"net"
"github.com/anon55555/mt"
)
// Kick sends mt.ToCltDisco with the specified custom reason
// and closes the ClientConn.
@ -23,7 +27,7 @@ func (cc *ClientConn) Kick(reason string) {
// network address from connecting again.
func (cc *ClientConn) Ban() error {
cc.Kick("Banned by proxy.")
return authIface.Ban(cc.RemoteAddr().String(), cc.name)
return authIface.Ban(cc.RemoteAddr().(*net.UDPAddr).IP.String(), cc.name)
}
// Unban removes a player from the ban list. It accepts both
@ -31,3 +35,8 @@ func (cc *ClientConn) Ban() error {
func Unban(id string) error {
return authIface.Unban(id)
}
// Banned reports whether a network address is banned.
func Banned(addr *net.UDPAddr) bool {
return authIface.Banned(addr)
}