diff options
Diffstat (limited to 'internal/server/session/session.go')
| -rw-r--r-- | internal/server/session/session.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/server/session/session.go b/internal/server/session/session.go index ffe6c56..5c395b7 100644 --- a/internal/server/session/session.go +++ b/internal/server/session/session.go @@ -4,11 +4,13 @@ import ( "context" "crypto/ed25519" "crypto/rand" + "log/slog" "net" "sync" "time" "github.com/kyren223/eko/internal/packet" + "github.com/kyren223/eko/internal/server/ctxkeys" "github.com/kyren223/eko/pkg/assert" "github.com/kyren223/eko/pkg/snowflake" ) @@ -149,3 +151,17 @@ func (s *Session) CloseWriteQueue() { func (s *Session) Close() { s.cancel() } + +func (s *Session) LogValue() slog.Value { + if s.IsAuthenticated() { + return slog.GroupValue( + slog.Any(ctxkeys.IpAddr.String(), s.Addr()), + slog.Any(ctxkeys.UserID.String(), s.ID()), + slog.Any("public_key", s.PubKey()), + ) + } else { + return slog.GroupValue( + slog.Any(ctxkeys.IpAddr.String(), s.Addr()), + ) + } +} |
