mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-26 22:39:07 +01:00
Fix token sending
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user