소스 검색

Nits and fix tests

Nate Brown 7 달 전
부모
커밋
d21baede1f
4개의 변경된 파일과 6개의 추가작업 그리고 10개의 파일을 삭제
  1. 1 1
      inside.go
  2. 0 1
      interface.go
  3. 2 5
      overlay/tun_linux.go
  4. 3 3
      snat_test.go

+ 1 - 1
inside.go

@@ -235,7 +235,7 @@ func (f *Interface) sendMessageNow(t header.MessageType, st header.MessageSubTyp
 	}
 
 	// check if packet is in outbound fw rules
-	dropReason := f.firewall.Drop(*fp, nil, false, hostinfo, f.pki.GetCAPool(), nil)
+	dropReason := f.firewall.Drop(*fp, p, false, hostinfo, f.pki.GetCAPool(), nil)
 	if dropReason != nil {
 		if f.l.Level >= logrus.DebugLevel {
 			f.l.WithField("fwPacket", fp).

+ 0 - 1
interface.go

@@ -56,7 +56,6 @@ type Interface struct {
 	inside                overlay.Device
 	pki                   *PKI
 	firewall              *Firewall
-	snatAddr              netip.Addr
 	connectionManager     *connectionManager
 	handshakeManager      *HandshakeManager
 	serveDns              bool

+ 2 - 5
overlay/tun_linux.go

@@ -436,7 +436,7 @@ func (t *tun) Activate() error {
 			return fmt.Errorf("failed to set default route MTU for %s: %w", t.vpnNetworks[i], err)
 		}
 	}
-	//TODO snat and be snatted
+
 	if t.unsafeIPv4Origin.IsValid() {
 		if err = t.setDefaultRoute(t.unsafeIPv4Origin); err != nil {
 			return fmt.Errorf("failed to set default route MTU for %s: %w", t.unsafeIPv4Origin, err)
@@ -475,10 +475,7 @@ func (t *tun) setSnatRoute() error {
 	nr := netlink.Route{
 		LinkIndex: t.deviceIndex,
 		Dst:       dr,
-		//todo do we need these other options?
-		//MTU:       t.DefaultMTU,
-		//AdvMSS:    t.advMSS(Route{}),
-		Scope: unix.RT_SCOPE_LINK,
+		Scope:     unix.RT_SCOPE_LINK,
 		//Protocol: unix.RTPROT_KERNEL,
 		Table: unix.RT_TABLE_MAIN,
 		Type:  unix.RTN_UNICAST,

+ 3 - 3
snat_test.go

@@ -422,7 +422,7 @@ func TestFirewall_FindUsableSNATPort(t *testing.T) {
 			RemotePort: 12345,
 			Protocol:   firewall.ProtoUDP,
 		}
-		cn := &conn{}
+		cn := &conn{snat: &snatInfo{}}
 		err := fw.findUsableSNATPort(&fp, cn)
 		require.NoError(t, err)
 		// Port should have been assigned
@@ -448,7 +448,7 @@ func TestFirewall_FindUsableSNATPort(t *testing.T) {
 		fw.Conntrack.Conns[fp] = &conn{}
 		fw.Conntrack.Unlock()
 
-		cn := &conn{}
+		cn := &conn{snat: &snatInfo{}}
 		err := fw.findUsableSNATPort(&fp, cn)
 		require.NoError(t, err)
 		assert.NotEqual(t, uint16(12345), fp.RemotePort, "should pick a different port")
@@ -479,7 +479,7 @@ func TestFirewall_FindUsableSNATPort(t *testing.T) {
 		// Try to find a port starting from 0x8000
 		fp := baseFP
 		fp.RemotePort = 0x8000
-		cn := &conn{}
+		cn := &conn{snat: &snatInfo{}}
 		err := fw.findUsableSNATPort(&fp, cn)
 		assert.ErrorIs(t, err, ErrCannotSNAT)
 	})