summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--internal/server/api/api.go5
-rw-r--r--internal/server/server.go10
2 files changed, 14 insertions, 1 deletions
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(),