From 8aa5cbb72e6ad289582ac8fe687a7bfcc5e49beb Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Fri, 23 May 2025 10:30:24 +0300 Subject: Fixed packet loss bug due to client not waiting before exiting for the writes to fully proccess --- internal/server/server.go | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'internal/server') diff --git a/internal/server/server.go b/internal/server/server.go index 64f45f8..389b6b7 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -216,6 +216,11 @@ func (server *server) handleConnection(conn net.Conn) { } log.Println(addr, "sending packet:", packet) if _, err := packet.Into(conn); err != nil { + // TODO: probably should add this to prevent the + // "use of closed connection" error, as it's intended to happen + // if !errors.Is(err, net.ErrClosed) { + // log.Println(addr, err) + // } log.Println(addr, err) return } @@ -384,6 +389,8 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P response = &packet.Error{Error: "use of disallowed packet type for request"} } + // TODO: Isn't this weird? shouldn't it always be packet.ErrorPacket type? + // rather than copying the pkt type of the request? if response, ok := response.(*packet.Error); ok { response.PktType = request.Type() } -- cgit v1.3.1