Switch to new mt API

master
HimbeerserverDE 2021-11-13 12:32:44 +01:00
parent 18e7ba7977
commit 6f4494e1d0
No known key found for this signature in database
GPG Key ID: 1A651504791E6A8B
6 changed files with 24 additions and 24 deletions

View File

@ -136,7 +136,7 @@ func handleContent(cc *contentConn) {
break break
} }
cc.log("->", err) cc.log("<-", err)
continue continue
} }
@ -209,7 +209,7 @@ func handleContent(cc *contentConn) {
cc.SendCmd(&mt.ToSrvSRPBytesM{ cc.SendCmd(&mt.ToSrvSRPBytesM{
M: M, M: M,
}) })
case *mt.ToCltDisco: case *mt.ToCltKick:
cc.log("<-", "deny access", cmd) cc.log("<-", "deny access", cmd)
case *mt.ToCltAcceptAuth: case *mt.ToCltAcceptAuth:
cc.auth.method = 0 cc.auth.method = 0

2
go.mod
View File

@ -4,5 +4,5 @@ go 1.17
require ( require (
github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b
github.com/anon55555/mt v0.0.0-20210909184202-d6ba88b091f6 github.com/anon55555/mt v0.0.0-20210919124550-bcc58cb3048f
) )

4
go.sum
View File

@ -1,4 +1,4 @@
github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b h1:xqNC1S76U5U+eFyzr5Ld+8aPOLaDFCw6f1uddjui+h8= github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b h1:xqNC1S76U5U+eFyzr5Ld+8aPOLaDFCw6f1uddjui+h8=
github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b/go.mod h1:pxNH8S2nh4n2DWE0ToX5GnnDr/uEAuaAhJsCpkDLIWw= github.com/HimbeerserverDE/srp v0.0.0-20210331172529-2b5dbec6b82b/go.mod h1:pxNH8S2nh4n2DWE0ToX5GnnDr/uEAuaAhJsCpkDLIWw=
github.com/anon55555/mt v0.0.0-20210909184202-d6ba88b091f6 h1:JcKyABhWe6hGGA4IUqoCidNiKT1CCT6Sgp4D0VY7ako= github.com/anon55555/mt v0.0.0-20210919124550-bcc58cb3048f h1:tZU8VPYLyRrG3Lj9zBZvTVF5tUGciC/2aUIgTcU4WaM=
github.com/anon55555/mt v0.0.0-20210909184202-d6ba88b091f6/go.mod h1:jH4ER+ahjl7H6TczzK+q4V9sXY++U2Geh6/vt3r4Xvs= github.com/anon55555/mt v0.0.0-20210919124550-bcc58cb3048f/go.mod h1:jH4ER+ahjl7H6TczzK+q4V9sXY++U2Geh6/vt3r4Xvs=

View File

@ -6,11 +6,11 @@ import (
"github.com/anon55555/mt" "github.com/anon55555/mt"
) )
// Kick sends mt.ToCltDisco with the specified custom reason // Kick sends mt.ToCltKick with the specified custom reason
// and closes the ClientConn. // and closes the ClientConn.
func (cc *ClientConn) Kick(reason string) { func (cc *ClientConn) Kick(reason string) {
go func() { go func() {
ack, _ := cc.SendCmd(&mt.ToCltDisco{ ack, _ := cc.SendCmd(&mt.ToCltKick{
Reason: mt.Custom, Reason: mt.Custom,
Custom: reason, Custom: reason,
}) })

View File

@ -25,7 +25,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
cc.setState(csInit) cc.setState(csInit)
if cmd.SerializeVer != latestSerializeVer { if cmd.SerializeVer != latestSerializeVer {
cc.Log("<-", "invalid serializeVer") cc.Log("<-", "invalid serializeVer")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnsupportedVer}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnsupportedVer})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -38,7 +38,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if cmd.MaxProtoVer < latestProtoVer { if cmd.MaxProtoVer < latestProtoVer {
cc.Log("<-", "invalid protoVer") cc.Log("<-", "invalid protoVer")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnsupportedVer}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnsupportedVer})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -51,7 +51,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if len(cmd.PlayerName) == 0 || len(cmd.PlayerName) > maxPlayerNameLen { if len(cmd.PlayerName) == 0 || len(cmd.PlayerName) > maxPlayerNameLen {
cc.Log("<-", "invalid player name length") cc.Log("<-", "invalid player name length")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.BadName}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.BadName})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -64,7 +64,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if !playerNameChars.MatchString(cmd.PlayerName) { if !playerNameChars.MatchString(cmd.PlayerName) {
cc.Log("<-", "invalid player name") cc.Log("<-", "invalid player name")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.BadNameChars}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.BadNameChars})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -88,7 +88,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
_, ok := players[cc.Name()] _, ok := players[cc.Name()]
if ok { if ok {
cc.Log("<-", "already connected") cc.Log("<-", "already connected")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.AlreadyConnected}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.AlreadyConnected})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -105,7 +105,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if cc.Name() == "singleplayer" { if cc.Name() == "singleplayer" {
cc.Log("<-", "name is singleplayer") cc.Log("<-", "name is singleplayer")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.BadName}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.BadName})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -119,7 +119,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
// user limit // user limit
if len(players) >= Conf().UserLimit { if len(players) >= Conf().UserLimit {
cc.Log("<-", "player limit reached") cc.Log("<-", "player limit reached")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.TooManyClts}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.TooManyClts})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -149,7 +149,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if cc.state() == csInit { if cc.state() == csInit {
if cc.auth.method != mt.FirstSRP { if cc.auth.method != mt.FirstSRP {
cc.Log("->", "unauthorized password change") cc.Log("->", "unauthorized password change")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnexpectedData}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnexpectedData})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -167,7 +167,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if cmd.EmptyPasswd && Conf().RequirePasswd { if cmd.EmptyPasswd && Conf().RequirePasswd {
cc.Log("<-", "empty password disallowed") cc.Log("<-", "empty password disallowed")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.EmptyPasswd}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.EmptyPasswd})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -180,7 +180,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
if err := authIface.SetPasswd(cc.Name(), cmd.Salt, cmd.Verifier); err != nil { if err := authIface.SetPasswd(cc.Name(), cmd.Salt, cmd.Verifier); err != nil {
cc.Log("<-", "set password fail") cc.Log("<-", "set password fail")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.SrvErr}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.SrvErr})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -231,7 +231,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
return return
} }
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnexpectedData}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnexpectedData})
select { select {
case <-cc.Closed(): case <-cc.Closed():
case <-ack: case <-ack:
@ -251,7 +251,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
salt, verifier, err := authIface.Passwd(cc.Name()) salt, verifier, err := authIface.Passwd(cc.Name())
if err != nil { if err != nil {
cc.Log("<-", "SRP data retrieval fail") cc.Log("<-", "SRP data retrieval fail")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.SrvErr}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.SrvErr})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -267,7 +267,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
cc.auth.srpB, _, cc.auth.srpK, err = srp.Handshake(cc.auth.srpA, verifier) cc.auth.srpB, _, cc.auth.srpK, err = srp.Handshake(cc.auth.srpA, verifier)
if err != nil || cc.auth.srpB == nil { if err != nil || cc.auth.srpB == nil {
cc.Log("<-", "SRP safety check fail") cc.Log("<-", "SRP safety check fail")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnexpectedData}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnexpectedData})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -299,7 +299,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
return return
} }
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.UnexpectedData}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.UnexpectedData})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -336,7 +336,7 @@ func (cc *ClientConn) process(pkt mt.Pkt) {
} }
cc.Log("<-", "invalid password") cc.Log("<-", "invalid password")
ack, _ := cc.SendCmd(&mt.ToCltDisco{Reason: mt.WrongPasswd}) ack, _ := cc.SendCmd(&mt.ToCltKick{Reason: mt.WrongPasswd})
select { select {
case <-cc.Closed(): case <-cc.Closed():
@ -528,7 +528,7 @@ func (sc *ServerConn) process(pkt mt.Pkt) {
}) })
return return
case *mt.ToCltDisco: case *mt.ToCltKick:
sc.Log("<-", "deny access", cmd) sc.Log("<-", "deny access", cmd)
ack, _ := clt.SendCmd(cmd) ack, _ := clt.SendCmd(cmd)

View File

@ -109,7 +109,7 @@ func handleSrv(sc *ServerConn) {
} }
if sc.client() != nil { if sc.client() != nil {
ack, _ := sc.client().SendCmd(&mt.ToCltDisco{ ack, _ := sc.client().SendCmd(&mt.ToCltKick{
Reason: mt.Custom, Reason: mt.Custom,
Custom: "Server connection closed unexpectedly.", Custom: "Server connection closed unexpectedly.",
}) })