mirror of
https://github.com/fosrl/newt.git
synced 2026-03-06 10:46:40 +00:00
Handle hp and other stuff
This commit is contained in:
@@ -29,7 +29,7 @@ func setupClients(client *websocket.Client) {
|
|||||||
|
|
||||||
logger.Info("Setting up clients with netstack2...")
|
logger.Info("Setting up clients with netstack2...")
|
||||||
// Create WireGuard service
|
// Create WireGuard service
|
||||||
wgService, err = wgnetstack.NewWireGuardService(interfaceName, mtuInt, generateAndSaveKeyTo, host, id, client, "9.9.9.9", useNativeInterface)
|
wgService, err = wgnetstack.NewWireGuardService(interfaceName, mtuInt, host, id, client, dns, useNativeInterface)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Fatal("Failed to create WireGuard service: %v", err)
|
logger.Fatal("Failed to create WireGuard service: %v", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -105,36 +105,12 @@ type WireGuardService struct {
|
|||||||
netstackListenerMu sync.Mutex
|
netstackListenerMu sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewWireGuardService(interfaceName string, mtu int, generateAndSaveKeyTo string, host string, newtId string, wsClient *websocket.Client, dns string, useNativeInterface bool) (*WireGuardService, error) {
|
func NewWireGuardService(interfaceName string, mtu int, host string, newtId string, wsClient *websocket.Client, dns string, useNativeInterface bool) (*WireGuardService, error) {
|
||||||
var key wgtypes.Key
|
key, err := wgtypes.GeneratePrivateKey()
|
||||||
var err error
|
|
||||||
|
|
||||||
key, err = wgtypes.GeneratePrivateKey()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("failed to generate private key: %v", err)
|
return nil, fmt.Errorf("failed to generate private key: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load or generate private key
|
|
||||||
if generateAndSaveKeyTo != "" {
|
|
||||||
if _, err := os.Stat(generateAndSaveKeyTo); os.IsNotExist(err) {
|
|
||||||
// File doesn't exist, save the generated key
|
|
||||||
err = os.WriteFile(generateAndSaveKeyTo, []byte(key.String()), 0600)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to save private key: %v", err)
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// File exists, read the existing key
|
|
||||||
keyData, err := os.ReadFile(generateAndSaveKeyTo)
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to read private key: %v", err)
|
|
||||||
}
|
|
||||||
key, err = wgtypes.ParseKey(strings.TrimSpace(string(keyData)))
|
|
||||||
if err != nil {
|
|
||||||
return nil, fmt.Errorf("failed to parse private key: %v", err)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Find an available port
|
// Find an available port
|
||||||
port, err := util.FindAvailableUDPPort(49152, 65535)
|
port, err := util.FindAvailableUDPPort(49152, 65535)
|
||||||
|
|
||||||
|
|||||||
5
main.go
5
main.go
@@ -116,7 +116,6 @@ var (
|
|||||||
err error
|
err error
|
||||||
logLevel string
|
logLevel string
|
||||||
interfaceName string
|
interfaceName string
|
||||||
generateAndSaveKeyTo string
|
|
||||||
acceptClients bool
|
acceptClients bool
|
||||||
updownScript string
|
updownScript string
|
||||||
dockerSocket string
|
dockerSocket string
|
||||||
@@ -168,7 +167,6 @@ func main() {
|
|||||||
logLevel = os.Getenv("LOG_LEVEL")
|
logLevel = os.Getenv("LOG_LEVEL")
|
||||||
updownScript = os.Getenv("UPDOWN_SCRIPT")
|
updownScript = os.Getenv("UPDOWN_SCRIPT")
|
||||||
interfaceName = os.Getenv("INTERFACE")
|
interfaceName = os.Getenv("INTERFACE")
|
||||||
generateAndSaveKeyTo = os.Getenv("GENERATE_AND_SAVE_KEY_TO")
|
|
||||||
|
|
||||||
// Metrics/observability env mirrors
|
// Metrics/observability env mirrors
|
||||||
metricsEnabledEnv := os.Getenv("NEWT_METRICS_PROMETHEUS_ENABLED")
|
metricsEnabledEnv := os.Getenv("NEWT_METRICS_PROMETHEUS_ENABLED")
|
||||||
@@ -237,9 +235,6 @@ func main() {
|
|||||||
if interfaceName == "" {
|
if interfaceName == "" {
|
||||||
flag.StringVar(&interfaceName, "interface", "newt", "Name of the WireGuard interface")
|
flag.StringVar(&interfaceName, "interface", "newt", "Name of the WireGuard interface")
|
||||||
}
|
}
|
||||||
if generateAndSaveKeyTo == "" {
|
|
||||||
flag.StringVar(&generateAndSaveKeyTo, "generateAndSaveKeyTo", "", "Path to save generated private key")
|
|
||||||
}
|
|
||||||
if useNativeInterfaceEnv == "" {
|
if useNativeInterfaceEnv == "" {
|
||||||
flag.BoolVar(&useNativeInterface, "native", false, "Use native WireGuard interface (requires WireGuard kernel module) and linux")
|
flag.BoolVar(&useNativeInterface, "native", false, "Use native WireGuard interface (requires WireGuard kernel module) and linux")
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user