Fix token sending

This commit is contained in:
Zoltán Papp
2024-07-10 13:21:50 +02:00
parent 820e2feec9
commit d1b6387803
6 changed files with 36 additions and 21 deletions
+15 -5
View File
@@ -2,23 +2,33 @@ package hmac
import (
"sync"
log "github.com/sirupsen/logrus"
)
// TokenStore is a simple in-memory store for token
// With this can update the token in thread safe way
type TokenStore struct {
mu sync.Mutex
token Token
token []byte
}
func (a *TokenStore) UpdateToken(token Token) {
func (a *TokenStore) UpdateToken(token *Token) {
a.mu.Lock()
defer a.mu.Unlock()
a.token = token
if token == nil {
return
}
t, err := marshalToken(*token)
if err != nil {
log.Errorf("failed to marshal token: %s", err)
}
a.token = t
}
func (a *TokenStore) Token() ([]byte, error) {
func (a *TokenStore) TokenBinary() []byte {
a.mu.Lock()
defer a.mu.Unlock()
return marshalToken(a.token)
return a.token
}
+2 -5
View File
@@ -238,12 +238,9 @@ func (c *Client) connect() error {
}
func (c *Client) handShake() error {
t, err := c.authTokenStore.Token()
if err != nil {
return err
}
tb := c.authTokenStore.TokenBinary()
msg, err := messages.MarshalHelloMsg(c.hashedID, t)
msg, err := messages.MarshalHelloMsg(c.hashedID, tb)
if err != nil {
log.Errorf("failed to marshal hello message: %s", err)
return err
+1 -1
View File
@@ -265,6 +265,6 @@ func (m *Manager) notifyOnDisconnectListeners(serverAddress string) {
}
func (m *Manager) UpdateToken(token relayAuth.Token) {
func (m *Manager) UpdateToken(token *relayAuth.Token) {
m.tokenStore.UpdateToken(token)
}
+1 -1
View File
@@ -20,7 +20,7 @@ const (
headerSizeTransport = sizeOfMsgType + IDSize // 1 byte for msg type, IDSize for peerID
headerSizeHello = sizeOfMsgType + sizeOfMagicBye + IDSize // 1 byte for msg type, 4 byte for magic header, IDSize for peerID
MaxHandshakeSize = 90
MaxHandshakeSize = 8192
)
var (