summaryrefslogtreecommitdiff
path: root/internal/server/session
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2025-07-06 00:51:33 +0300
committerKyren223 <Kyren223@proton.me>2025-07-06 00:51:33 +0300
commite7344492595b26fd7ae21b945d1bdfe2ef115f10 (patch)
treed15598991805ef530be5332cf43f6ea629f7adaf /internal/server/session
parent8f8736d09efce46147ff37d4840fb424aa6cb7e4 (diff)
Added terms of service (incomplete!!!!) to the server, and added
authentication separation between API calls, actually authentication (nonce, and verification) is not implemented yet
Diffstat (limited to 'internal/server/session')
-rw-r--r--internal/server/session/session.go35
1 files changed, 23 insertions, 12 deletions
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
}