Fix staticcheck linter warnings

By moving darwin specific codes to darwin file.
This commit is contained in:
Cuong Manh Le
2025-02-19 20:28:25 +07:00
committed by Cuong Manh Le
parent 8bd3b9e474
commit 54cb455522
2 changed files with 36 additions and 39 deletions

View File

@@ -7,6 +7,7 @@ import (
"bytes"
"context"
"fmt"
"io"
"net"
"os/exec"
"regexp"
@@ -244,3 +245,38 @@ func getAllDHCPNameservers() []string {
return allNameservers
}
func patchNetIfaceName(iface *net.Interface) (bool, error) {
b, err := exec.Command("networksetup", "-listnetworkserviceorder").Output()
if err != nil {
return false, err
}
patched := false
if name := networkServiceName(iface.Name, bytes.NewReader(b)); name != "" {
patched = true
iface.Name = name
}
return patched, nil
}
func networkServiceName(ifaceName string, r io.Reader) string {
scanner := bufio.NewScanner(r)
prevLine := ""
for scanner.Scan() {
line := scanner.Text()
if strings.Contains(line, "*") {
// Network services is disabled.
continue
}
if !strings.Contains(line, "Device: "+ifaceName) {
prevLine = line
continue
}
parts := strings.SplitN(prevLine, " ", 2)
if len(parts) == 2 {
return strings.TrimSpace(parts[1])
}
}
return ""
}

View File

@@ -1,12 +1,8 @@
package ctrld
import (
"bufio"
"bytes"
"io"
"net"
"os"
"os/exec"
"path/filepath"
"runtime"
"strings"
@@ -81,38 +77,3 @@ func SavedStaticNameservers(iface *net.Interface) ([]string, string) {
}
return ns, file
}
func patchNetIfaceName(iface *net.Interface) (bool, error) {
b, err := exec.Command("networksetup", "-listnetworkserviceorder").Output()
if err != nil {
return false, err
}
patched := false
if name := networkServiceName(iface.Name, bytes.NewReader(b)); name != "" {
patched = true
iface.Name = name
}
return patched, nil
}
func networkServiceName(ifaceName string, r io.Reader) string {
scanner := bufio.NewScanner(r)
prevLine := ""
for scanner.Scan() {
line := scanner.Text()
if strings.Contains(line, "*") {
// Network services is disabled.
continue
}
if !strings.Contains(line, "Device: "+ifaceName) {
prevLine = line
continue
}
parts := strings.SplitN(prevLine, " ", 2)
if len(parts) == 2 {
return strings.TrimSpace(parts[1])
}
}
return ""
}