- Remove heartbeat logs

- Fix relay client tests
- Fix auth ID unmarshalling
- Add magic header check
This commit is contained in:
Zoltán Papp 2024-07-08 17:55:48 +02:00
parent 931f165c9a
commit a9e6742d9a
6 changed files with 15 additions and 8 deletions

View File

@ -308,7 +308,6 @@ func (c *Client) readLoop(relayConn net.Conn) {
switch msgType {
case messages.MsgTypeHealthCheck:
log.Debugf("on new heartbeat")
msg := messages.MarshalHealthcheck()
_, wErr := c.relayConn.Write(msg)
if wErr != nil {

View File

@ -32,10 +32,10 @@ func TestMain(m *testing.M) {
func TestClient(t *testing.T) {
ctx := context.Background()
srvCfg := server.ListenerConfig{Address: serverListenAddr}
srv := server.NewServer(serverURL, false, av)
go func() {
err := srv.Listen(srvCfg)
listenCfg := server.ListenerConfig{Address: serverListenAddr}
err := srv.Listen(listenCfg)
if err != nil {
t.Fatalf("failed to bind server: %s", err)
}
@ -48,6 +48,7 @@ func TestClient(t *testing.T) {
}
}()
t.Log("alice connecting to server")
clientAlice := NewClient(ctx, serverURL, hmacTokenStore, "alice")
err := clientAlice.Connect()
if err != nil {
@ -55,6 +56,7 @@ func TestClient(t *testing.T) {
}
defer clientAlice.Close()
t.Log("placeholder connecting to server")
clientPlaceHolder := NewClient(ctx, serverURL, hmacTokenStore, "clientPlaceHolder")
err = clientPlaceHolder.Connect()
if err != nil {
@ -62,6 +64,7 @@ func TestClient(t *testing.T) {
}
defer clientPlaceHolder.Close()
t.Log("Bob connecting to server")
clientBob := NewClient(ctx, serverURL, hmacTokenStore, "bob")
err = clientBob.Connect()
if err != nil {
@ -69,11 +72,13 @@ func TestClient(t *testing.T) {
}
defer clientBob.Close()
t.Log("Alice open connection to Bob")
connAliceToBob, err := clientAlice.OpenConn("bob")
if err != nil {
t.Fatalf("failed to bind channel: %s", err)
}
t.Log("Bob open connection to Alice")
connBobToAlice, err := clientBob.OpenConn("alice")
if err != nil {
t.Fatalf("failed to bind channel: %s", err)

View File

@ -8,7 +8,7 @@ import (
const (
prefixLength = 4
IDSize = sha256.Size + 4 // 4 is equal with len(prefix)
IDSize = prefixLength + sha256.Size
)
var (

View File

@ -5,7 +5,7 @@ import (
)
func TestHashID(t *testing.T) {
hashedID, hashedStringId := HashID("abc")
hashedID, hashedStringId := HashID("alice")
enc := HashIDToString(hashedID)
if enc != hashedStringId {
t.Errorf("expected %s, got %s", hashedStringId, enc)

View File

@ -89,6 +89,8 @@ func MarshalHelloMsg(peerID []byte, additions []byte) ([]byte, error) {
if len(peerID) != IDSize {
return nil, fmt.Errorf("invalid peerID length: %d", len(peerID))
}
// 5 = 1 byte for msg type, 4 byte for magic header
msg := make([]byte, 5, headerSizeHello+len(additions))
msg[0] = byte(MsgTypeHello)
copy(msg[1:5], magicHeader)
@ -101,8 +103,10 @@ func UnmarshalHelloMsg(msg []byte) ([]byte, []byte, error) {
if len(msg) < headerSizeHello {
return nil, nil, fmt.Errorf("invalid 'hello' messge")
}
bytes.Equal(msg[1:5], magicHeader)
return msg[5:], msg[headerSizeHello:], nil
if !bytes.Equal(msg[1:5], magicHeader) {
return nil, nil, fmt.Errorf("invalid magic header")
}
return msg[5 : 5+IDSize], msg[headerSizeHello:], nil
}
func MarshalHelloResponse(DomainAddress string) ([]byte, error) {

View File

@ -147,7 +147,6 @@ func (p *Peer) healthcheck(ctx context.Context, hc *healthcheck.Sender) {
for {
select {
case <-hc.HealthCheck:
p.log.Debugf("sending healthcheck message")
_, err := p.Write(messages.MarshalHealthcheck())
if err != nil {
p.log.Errorf("failed to send healthcheck message: %s", err)