summaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-07-03 20:46:29 +0300
committerKyren223 <Kyren223@proton.me>2025-07-03 20:46:29 +0300
commit2d1408598ada38cb51412efe74b7c64466cb9057 (patch)
treef87a4909ff3eb224d24e244f69cb07d44d00c099 /internal/server/server.go
parent635db98044c4bdf1d9badc0e24ce2db461d83c75 (diff)
Added ctxkeys package to better handle addition context when logging and
partially integrated it with keys for user id and ip addr
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go7
1 files changed, 7 insertions, 0 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index 8067a19..8accb14 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -19,6 +19,7 @@ import (
"github.com/kyren223/eko/certs"
"github.com/kyren223/eko/internal/packet"
"github.com/kyren223/eko/internal/server/api"
+ "github.com/kyren223/eko/internal/server/ctxkeys"
"github.com/kyren223/eko/internal/server/session"
"github.com/kyren223/eko/pkg/assert"
"github.com/kyren223/eko/pkg/snowflake"
@@ -151,6 +152,7 @@ func (server *server) handleConnection(conn net.Conn) {
log.Println(addr, "accepted")
initialCtx, initialCancel := context.WithTimeout(server.ctx, 5*time.Second)
+ initialCtx = context.WithValue(initialCtx, ctxkeys.IpAddr, addr)
deadline, _ := initialCtx.Deadline()
err := conn.SetDeadline(deadline)
assert.NoError(err, "setting read deadline should not error")
@@ -175,8 +177,13 @@ func (server *server) handleConnection(conn net.Conn) {
log.Println(addr, "disconnected")
return
}
+
ctx, cancel := context.WithCancel(server.ctx)
defer cancel()
+
+ ctx = context.WithValue(ctx, ctxkeys.UserID, user.ID)
+ ctx = context.WithValue(ctx, ctxkeys.IpAddr, addr)
+
sess := session.NewSession(server, addr, cancel, user.ID, pubKey)
server.AddSession(sess)
framer := packet.NewFramer()