Merge pull request #1372 from gravitl/hotfix_v0.14.5_listen_port

update logic for determing when to check for free port
This commit is contained in:
dcarns 2022-07-11 11:50:21 -04:00 committed by GitHub
commit 31073b7380
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 23 additions and 27 deletions

View file

@ -325,11 +325,11 @@ jobs:
- name: Build
run: |
cd netclient
env CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags="-X 'main.Version=${NETMAKER_VERSION}'" -o build/netclient-freebsd/netclient main.go
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm5/netclient main.go
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm6/netclient main.go
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm7/netclient main.go
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm64/netclient main.go
env CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd/netclient .
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=5 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm5/netclient .
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=6 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm6/netclient .
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm GOARM=7 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm7/netclient .
env CGO_ENABLED=0 GOOS=freebsd GOARCH=arm64 go build -ldflags="-X 'main.version=${NETMAKER_VERSION}'" -o build/netclient-freebsd-arm64/netclient .
- name: Upload freebsd to Release
uses: svenstaro/upload-release-action@v2

View file

@ -1,12 +0,0 @@
name: Manual PR Testing
on: [pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: trstringer/manual-approval@v1
with:
secret: ${{ secrets.DEVOPS_API_TOKEN }}
approvers: theguy951357,afeiszli,mattkasun,0xdcarns
minimum-approvals: 1

View file

@ -23,7 +23,7 @@ func GetLocalListenPort(ifacename string) (int32, error) {
defer client.Close()
device, err := client.Device(ifacename)
if err != nil {
logger.Log(0, "failed to parse interface")
logger.Log(0, "failed to parse interface", ifacename)
return 0, err
}
return int32(device.ListenPort), nil
@ -35,7 +35,7 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error {
ifacename := getRealIface(nodeCfg.Node.Interface, nodeCfg.Node.Address)
localPort, err := GetLocalListenPort(ifacename)
if err != nil {
logger.Log(1, "error encountered checking local listen port: ", err.Error())
logger.Log(1, "error encountered checking local listen port: ", ifacename, err.Error())
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
logger.Log(1, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
nodeCfg.Node.LocalListenPort = localPort

View file

@ -34,7 +34,7 @@ func UpdateLocalListenPort(nodeCfg *config.ClientConfig) error {
var err error
localPort, err := GetLocalListenPort(nodeCfg.Node.Interface)
if err != nil {
logger.Log(1, "error encountered checking local listen port: ", err.Error())
logger.Log(1, "error encountered checking local listen port for interface : ",nodeCfg.Node.Interface err.Error())
} else if nodeCfg.Node.LocalListenPort != localPort && localPort != 0 {
logger.Log(1, "local port has changed from ", strconv.Itoa(int(nodeCfg.Node.LocalListenPort)), " to ", strconv.Itoa(int(localPort)))
nodeCfg.Node.LocalListenPort = localPort

View file

@ -106,12 +106,17 @@ func NodeUpdate(client mqtt.Client, msg mqtt.Message) {
file := ncutils.GetNetclientPathSpecific() + nodeCfg.Node.Interface + ".conf"
if ifaceDelta { // if a change caused an ifacedelta we need to notify the server to update the peers
err = ncutils.ModPort(&newNode)
if err != nil {
logger.Log(0, "error modifying node port on", newNode.Name, "-", err.Error())
return
if newNode.ListenPort != nodeCfg.Node.LocalListenPort {
if err := wireguard.RemoveConf(newNode.Interface, false); err != nil {
logger.Log(0, "error remove interface", newNode.Interface, err.Error())
}
err = ncutils.ModPort(&newNode)
if err != nil {
logger.Log(0, "error modifying node port on", newNode.Name, "-", err.Error())
return
}
informPortChange(&newNode)
}
informPortChange(&newNode)
if err := wireguard.UpdateWgInterface(file, privateKey, nameserver, newNode); err != nil {
logger.Log(0, "error updating wireguard config "+err.Error())
return

View file

@ -62,7 +62,10 @@ func Pull(network string, iface bool) (*models.Node, error) {
logger.Log(0, "unable to update server config: "+err.Error())
}
}
if nodeGET.Node.ListenPort != cfg.Node.ListenPort {
if nodeGET.Node.ListenPort != cfg.Node.LocalListenPort {
if err := wireguard.RemoveConf(resNode.Interface, false); err != nil {
logger.Log(0, "error remove interface", resNode.Interface, err.Error())
}
err = ncutils.ModPort(&resNode)
if err != nil {
return nil, err

View file

@ -548,7 +548,7 @@ func GetDevicePeers(iface string) ([]wgtypes.Peer, error) {
defer client.Close()
device, err := client.Device(iface)
if err != nil {
logger.Log(0, "failed to parse interface")
logger.Log(0, "failed to parse interface", iface)
return nil, err
}
return device.Peers, nil