netbird/relay/testec2/start_msg.go
Zoltan Papp 0c039274a4
[relay] Feature/relay integration (#2244)
This update adds new relay integration for NetBird clients. The new relay is based on web sockets and listens on a single port.

- Adds new relay implementation with websocket with single port relaying mechanism
- refactor peer connection logic, allowing upgrade and downgrade from/to P2P connection
- peer connections are faster since it connects first to relay and then upgrades to P2P
- maintains compatibility with old clients by not using the new relay
- updates infrastructure scripts with new relay service
2024-09-08 12:06:14 +02:00

40 lines
700 B
Go

//go:build linux || darwin
package main
import (
"bytes"
"encoding/gob"
"time"
log "github.com/sirupsen/logrus"
)
type StartIndication struct {
Started time.Time
TransferSize int
}
func NewStartInidication(started time.Time, transferSize int) []byte {
si := StartIndication{
Started: started,
TransferSize: transferSize,
}
var data bytes.Buffer
err := gob.NewEncoder(&data).Encode(si)
if err != nil {
log.Fatal("encode error:", err)
}
return data.Bytes()
}
func DecodeStartIndication(data []byte) StartIndication {
var si StartIndication
err := gob.NewDecoder(bytes.NewReader(data)).Decode(&si)
if err != nil {
log.Fatal("decode error:", err)
}
return si
}