From 272dcb4d360289832d6412e81709b9823fe343cf Mon Sep 17 00:00:00 2001 From: Admin Else <74665496+admin-else@users.noreply.github.com> Date: Thu, 2 Apr 2026 18:49:50 +0200 Subject: [PATCH] warn instead of crash on unexpected packet --- client/login.go | 7 +++++-- server/login_server.go | 6 ++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/client/login.go b/client/login.go index 88e95fe..e0a3793 100644 --- a/client/login.go +++ b/client/login.go @@ -6,7 +6,7 @@ import ( "crypto/x509" "encoding/json" "errors" - "fmt" + "log/slog" "github.com/admin-else/strom/api" "github.com/admin-else/strom/crypto" @@ -42,7 +42,10 @@ func (k KickedDuringLoginErr) Error() string { } func (s *LoginClient) OnDefault(event event.Unhandled) (err error) { - err = fmt.Errorf("unexpected event: %#v", event) + if _, ok := event.Val.(proto_base.EncodeDecodeAble); !ok { + return + } + slog.Warn("unexpected packet during login client", "packet", event.Val) return } diff --git a/server/login_server.go b/server/login_server.go index 400407e..e8701ba 100644 --- a/server/login_server.go +++ b/server/login_server.go @@ -109,7 +109,10 @@ func (l *LoginServer) OnLoginAcknowledged(_ *v1_21_8.LoginToServerPacketLoginAck } func (l *LoginServer) OnDefault(event event.Unhandled) (err error) { - err = fmt.Errorf("unexpected event during login: %#v", event) + if _, ok := event.Val.(proto_base.EncodeDecodeAble); !ok { + return + } + slog.Warn("unexpected packet during login serving", "packet", event.Val) return } @@ -160,7 +163,6 @@ func WithCompatibleVersions(versions ...int32) LoginServerSetting { func ServeLogin(c *proto.Conn, settings ...LoginServerSetting) (ret *LoginServer, err error) { ret = &LoginServer{Conn: c} ret.RegisterCritical(ret.OnDefault) - ret.RegisterIgnore(event.Close{}) ret.RegisterCriticalUntilLatest(ret.OnHandshake) ret.RegisterCriticalUntilLatest(ret.OnLoginStart) ret.RegisterCriticalUntilLatest(ret.OnLoginAcknowledged)