From e7344492595b26fd7ae21b945d1bdfe2ef115f10 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 6 Jul 2025 00:51:33 +0300 Subject: Added terms of service (incomplete!!!!) to the server, and added authentication separation between API calls, actually authentication (nonce, and verification) is not implemented yet --- internal/server/session/session.go | 35 +++++++++++++++++++++++------------ 1 file changed, 23 insertions(+), 12 deletions(-) (limited to 'internal/server/session/session.go') diff --git a/internal/server/session/session.go b/internal/server/session/session.go index ffe4e13..013ff71 100644 --- a/internal/server/session/session.go +++ b/internal/server/session/session.go @@ -36,8 +36,9 @@ type Session struct { issuedTime time.Time challenge []byte - pubKey ed25519.PublicKey - id snowflake.ID + isTosAccepted bool + pubKey ed25519.PublicKey + id snowflake.ID mu sync.Mutex } @@ -50,16 +51,18 @@ func NewSession( assert.NotNil(addr, "tcp address should be valid") assert.NotNil(manager, "session manager should be valid") session := &Session{ - manager: manager, - addr: addr, - cancel: cancel, - writeQueue: make(chan packet.Packet, WriteQueueSize), - writerWg: writerWg, - issuedTime: time.Time{}, - challenge: make([]byte, 32), - pubKey: ed25519.PublicKey{}, - id: snowflake.InvalidID, - mu: sync.Mutex{}, + manager: manager, + addr: addr, + cancel: cancel, + writeQueue: make(chan packet.Packet, WriteQueueSize), + writerWg: writerWg, + writeMu: sync.RWMutex{}, + issuedTime: time.Time{}, + challenge: make([]byte, 32), + pubKey: ed25519.PublicKey{}, + id: snowflake.InvalidID, + mu: sync.Mutex{}, + isTosAccepted: false, } return session } @@ -69,6 +72,14 @@ func (s *Session) Addr() *net.TCPAddr { return s.addr } +func (s *Session) IsTosAccepted() bool { + return s.isTosAccepted +} + +func (s *Session) ReceivedTosAcceptance() { + s.isTosAccepted = true +} + func (s *Session) IsAuthenticated() bool { return s.id != snowflake.InvalidID } -- cgit v1.3.1