diff options
| author | Kyren223 <Kyren223@proton.me> | 2025-07-03 20:46:29 +0300 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2025-07-03 20:46:29 +0300 |
| commit | 2d1408598ada38cb51412efe74b7c64466cb9057 (patch) | |
| tree | f87a4909ff3eb224d24e244f69cb07d44d00c099 /internal/server/server.go | |
| parent | 635db98044c4bdf1d9badc0e24ce2db461d83c75 (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.go | 7 |
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() |
