diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-09-11 12:25:50 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2021-09-11 12:25:50 +0200 |
commit | fdbd728918e37ff1bf35a0a2e8109ed627e01874 (patch) | |
tree | 2792539f0fe5f04e6e9061991fd4cb1743f12fdf | |
parent | a0ed77943cc7de5ede16764c367827c95b5322dc (diff) |
Ignore port to make ban actually work
-rw-r--r-- | auth_sqlite3.go | 4 | ||||
-rw-r--r-- | moderation.go | 13 |
2 files changed, 13 insertions, 4 deletions
diff --git a/auth_sqlite3.go b/auth_sqlite3.go index 7403e8c..5562ca1 100644 --- a/auth_sqlite3.go +++ b/auth_sqlite3.go @@ -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 } diff --git a/moderation.go b/moderation.go index e0e3d1a..ae4d620 100644 --- a/moderation.go +++ b/moderation.go @@ -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) +} |