Browse Source

add route every time

afeiszli 3 years ago
parent
commit
833151c86d
3 changed files with 8 additions and 2 deletions
  1. 3 1
      Dockerfile
  2. 2 0
      netclient/functions/common.go
  3. 3 1
      netclient/wireguard/common.go

+ 3 - 1
Dockerfile

@@ -5,7 +5,9 @@ RUN apk add build-base
 WORKDIR /app
 COPY . .
 ENV GO111MODULE=auto
-RUN GOOS=linux CGO_ENABLED=1 go build -ldflags="-s -X 'main.version=$version'" -o netmaker main.go
+
+# RUN GOOS=linux CGO_ENABLED=1 go build -ldflags="-s -X 'main.version=$version'" -o netmaker main.go
+RUN GOOS=linux CGO_ENABLED=1 go build -tags debug -ldflags="-s -X 'main.version=$version'" -o netmaker main.go
 FROM alpine:3.13.6
 # add a c lib
 RUN apk add gcompat iptables

+ 2 - 0
netclient/functions/common.go

@@ -216,6 +216,8 @@ func LeaveNetwork(network string) error {
 		_, _ = ncutils.RunCmd("route delete "+ip+" mask "+mask+" "+node.Address, true)
 	} else if ncutils.IsFreeBSD() {
 		_, _ = ncutils.RunCmd("route del -net "+node.NetworkSettings.AddressRange+" -interface "+node.Interface, true)
+	} else if ncutils.IsLinux() {
+		_, _ = ncutils.RunCmd("ip -4 route del "+node.NetworkSettings.AddressRange+" dev "+node.Interface, false)
 	}
 	return RemoveLocalInstance(cfg, network)
 }

+ 3 - 1
netclient/wireguard/common.go

@@ -296,9 +296,11 @@ func InitWireguard(node *models.Node, privkey string, peers []wgtypes.PeerConfig
 		}
 	}
 
-	//extra network route setting required for freebsd and windows
+	//extra network route setting
 	if ncutils.IsFreeBSD() {
 		_, _ = ncutils.RunCmd("route add -net "+nodecfg.NetworkSettings.AddressRange+" -interface "+ifacename, true)
+	} else if ncutils.IsLinux() {
+		_, _ = ncutils.RunCmd("ip -4 route add "+nodecfg.NetworkSettings.AddressRange+" dev "+ifacename, false)
 	}
 
 	return err