aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeerserverDE <himbeerserverde@gmail.com>2021-09-11 12:25:50 +0200
committerHimbeerserverDE <himbeerserverde@gmail.com>2021-09-11 12:25:50 +0200
commitfdbd728918e37ff1bf35a0a2e8109ed627e01874 (patch)
tree2792539f0fe5f04e6e9061991fd4cb1743f12fdf
parenta0ed77943cc7de5ede16764c367827c95b5322dc (diff)
Ignore port to make ban actually work
-rw-r--r--auth_sqlite3.go4
-rw-r--r--moderation.go13
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)
+}