From 12f50940b4702ec5888ce110a6e67a00e32d1d05 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sat, 12 Jul 2025 14:27:58 +0300 Subject: Added handling for device analytics, but not the actual implementation yet --- internal/server/api/api.go | 5 +++++ internal/server/server.go | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/internal/server/api/api.go b/internal/server/api/api.go index 8f4703f..2f66a9b 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -1645,3 +1645,8 @@ func sendInitialAuthPackets(ctx context.Context, sess *session.Session) bool { return success } + +func DeviceAnalytics(ctx context.Context, sess *session.Session, request *packet.DeviceAnalytics) packet.Payload { + // TODO: implement this + return &ErrNotImplemented +} diff --git a/internal/server/server.go b/internal/server/server.go index 0ca3200..fcc904d 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -305,7 +305,12 @@ func (server *server) handleConnection(conn net.Conn) { // Reader buffer := make([]byte, 512) for { - conn.SetReadDeadline(time.Now().Add(ReadCheckCancelledInterval)) + err := conn.SetReadDeadline(time.Now().Add(ReadCheckCancelledInterval)) + if err != nil { + slog.ErrorContext(ctx, "failed setting read deadline", "error", err) + break + } + n, err := conn.Read(buffer) if err != nil { if errors.Is(err, io.EOF) { @@ -399,6 +404,9 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P case *packet.Authenticate: response = timeout(5*time.Millisecond, api.Authenticate, ctx, sess, request) + case *packet.DeviceAnalytics: + response = timeout(5*time.Millisecond, api.DeviceAnalytics, ctx, sess, request) + default: response = &packet.Error{Error: fmt.Sprintf( "use of disallowed packet type %v", request.Type().String(), -- cgit v1.3.1