summaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-29 23:24:06 +0200
committerKyren223 <Kyren223@proton.me>2024-11-29 23:24:06 +0200
commit3fa1c902c1049f56b30092cf6de28c4d358cf434 (patch)
treefb5de446cc6bd127cfe946d33c4812194e6f1f73 /internal/server/server.go
parent371e6c169cd39d9abe5b8d9023d4e5d0025e47a1 (diff)
Implemented network positions per user on client and server
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go19
1 files changed, 15 insertions, 4 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index 474be10..2ca0c2a 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -311,16 +311,27 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P
// TODO: add a way to measure the time each request/response took and log it
// Potentially even separate time for code vs DB operations
+ var response packet.Payload
switch request := request.(type) {
case *packet.CreateNetwork:
- return timeout(20*time.Millisecond, api.CreateNetwork, ctx, sess, request)
+ response = timeout(20*time.Millisecond, api.CreateNetwork, ctx, sess, request)
+ case *packet.SwapUserNetworks:
+ response = timeout(5*time.Millisecond, api.SwapUserNetworks, ctx, sess, request)
+
case *packet.SendMessage:
- return timeout(20*time.Millisecond, api.SendMessage, ctx, sess, request)
+ response = timeout(20*time.Millisecond, api.SendMessage, ctx, sess, request)
case *packet.RequestMessages:
- return timeout(50*time.Millisecond, api.RequestMessages, ctx, sess, request)
+ response = timeout(50*time.Millisecond, api.RequestMessages, ctx, sess, request)
+
default:
- return &packet.Error{Error: "use of disallowed packet type for request"}
+ response = &packet.Error{Error: "use of disallowed packet type for request"}
}
+
+ if response, ok := response.(*packet.Error); ok {
+ response.PktType = request.Type()
+ }
+
+ return response
}
func timeout[T packet.Payload](