mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-22 18:26:41 +00:00
Revert "Merge branch 'main' into feature/remote-debug"
This reverts commit6d6333058c, reversing changes made to446aded1f7.
This commit is contained in:
@@ -5,16 +5,14 @@ import (
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/netbirdio/netbird/client/iface"
|
||||
"github.com/netbirdio/netbird/sharedsock"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
port := 51820
|
||||
rawSock, err := sharedsock.Listen(port, sharedsock.NewIncomingSTUNFilter(), iface.DefaultMTU)
|
||||
rawSock, err := sharedsock.Listen(port, sharedsock.NewIncomingSTUNFilter())
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ import (
|
||||
"golang.org/x/sync/errgroup"
|
||||
"golang.org/x/sys/unix"
|
||||
|
||||
nbnet "github.com/netbirdio/netbird/client/net"
|
||||
nbnet "github.com/netbirdio/netbird/util/net"
|
||||
)
|
||||
|
||||
// ErrSharedSockStopped indicates that shared socket has been stopped
|
||||
@@ -36,7 +36,6 @@ type SharedSocket struct {
|
||||
conn4 *socket.Conn
|
||||
conn6 *socket.Conn
|
||||
port int
|
||||
mtu uint16
|
||||
routerMux sync.RWMutex
|
||||
router routing.Router
|
||||
packetDemux chan rcvdPacket
|
||||
@@ -57,19 +56,12 @@ var writeSerializerOptions = gopacket.SerializeOptions{
|
||||
FixLengths: true,
|
||||
}
|
||||
|
||||
// Maximum overhead for IP + UDP headers on raw socket
|
||||
// IPv4: max 60 bytes (20 base + 40 options) + UDP 8 bytes = 68 bytes
|
||||
// IPv6: 40 bytes + UDP 8 bytes = 48 bytes
|
||||
// We use the maximum (68) for both IPv4 and IPv6
|
||||
const maxIPUDPOverhead = 68
|
||||
|
||||
// Listen creates an IPv4 and IPv6 raw sockets, starts a reader and routing table routines
|
||||
func Listen(port int, filter BPFFilter, mtu uint16) (_ net.PacketConn, err error) {
|
||||
func Listen(port int, filter BPFFilter) (_ net.PacketConn, err error) {
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
rawSock := &SharedSocket{
|
||||
ctx: ctx,
|
||||
cancel: cancel,
|
||||
mtu: mtu,
|
||||
port: port,
|
||||
packetDemux: make(chan rcvdPacket),
|
||||
}
|
||||
@@ -93,7 +85,7 @@ func Listen(port int, filter BPFFilter, mtu uint16) (_ net.PacketConn, err error
|
||||
}
|
||||
|
||||
if err = nbnet.SetSocketMark(rawSock.conn4); err != nil {
|
||||
return nil, fmt.Errorf("set SO_MARK on ipv4 socket: %w", err)
|
||||
return nil, fmt.Errorf("failed to set SO_MARK on ipv4 socket: %w", err)
|
||||
}
|
||||
|
||||
var sockErr error
|
||||
@@ -102,7 +94,7 @@ func Listen(port int, filter BPFFilter, mtu uint16) (_ net.PacketConn, err error
|
||||
log.Errorf("Failed to create ipv6 raw socket: %v", err)
|
||||
} else {
|
||||
if err = nbnet.SetSocketMark(rawSock.conn6); err != nil {
|
||||
return nil, fmt.Errorf("set SO_MARK on ipv6 socket: %w", err)
|
||||
return nil, fmt.Errorf("failed to set SO_MARK on ipv6 socket: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -231,7 +223,7 @@ func (s *SharedSocket) Close() error {
|
||||
// read start a read loop for a specific receiver and sends the packet to the packetDemux channel
|
||||
func (s *SharedSocket) read(receiver receiver) {
|
||||
for {
|
||||
buf := make([]byte, s.mtu+maxIPUDPOverhead)
|
||||
buf := make([]byte, 1500)
|
||||
n, addr, err := receiver(s.ctx, buf, 0)
|
||||
select {
|
||||
case <-s.ctx.Done():
|
||||
|
||||
@@ -21,7 +21,7 @@ func TestShouldReadSTUNOnReadFrom(t *testing.T) {
|
||||
|
||||
// create raw socket on a port
|
||||
testingPort := 51821
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter(), 1280)
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter())
|
||||
require.NoError(t, err, "received an error while creating STUN listener, error: %s", err)
|
||||
err = rawSock.SetReadDeadline(time.Now().Add(3 * time.Second))
|
||||
require.NoError(t, err, "unable to set deadline, error: %s", err)
|
||||
@@ -76,7 +76,7 @@ func TestShouldReadSTUNOnReadFrom(t *testing.T) {
|
||||
|
||||
func TestShouldNotReadNonSTUNPackets(t *testing.T) {
|
||||
testingPort := 39439
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter(), 1280)
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter())
|
||||
require.NoError(t, err, "received an error while creating STUN listener, error: %s", err)
|
||||
defer rawSock.Close()
|
||||
|
||||
@@ -110,7 +110,7 @@ func TestWriteTo(t *testing.T) {
|
||||
defer udpListener.Close()
|
||||
|
||||
testingPort := 39440
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter(), 1280)
|
||||
rawSock, err := Listen(testingPort, NewIncomingSTUNFilter())
|
||||
require.NoError(t, err, "received an error while creating STUN listener, error: %s", err)
|
||||
defer rawSock.Close()
|
||||
|
||||
@@ -144,7 +144,7 @@ func TestWriteTo(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestSharedSocket_Close(t *testing.T) {
|
||||
rawSock, err := Listen(39440, NewIncomingSTUNFilter(), 1280)
|
||||
rawSock, err := Listen(39440, NewIncomingSTUNFilter())
|
||||
require.NoError(t, err, "received an error while creating STUN listener, error: %s", err)
|
||||
|
||||
errGrp := errgroup.Group{}
|
||||
|
||||
@@ -9,6 +9,6 @@ import (
|
||||
)
|
||||
|
||||
// Listen is not supported on other platforms then Linux
|
||||
func Listen(port int, filter BPFFilter, mtu uint16) (net.PacketConn, error) {
|
||||
func Listen(port int, filter BPFFilter) (net.PacketConn, error) {
|
||||
return nil, fmt.Errorf("not supported OS %s. SharedSocket is only supported on Linux", runtime.GOOS)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user