mirror of
https://github.com/fosrl/newt.git
synced 2026-02-07 21:46:39 +00:00
Update logger to take in when initing
This commit is contained in:
@@ -29,9 +29,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type WgConfig struct {
|
type WgConfig struct {
|
||||||
IpAddress string `json:"ipAddress"`
|
IpAddress string `json:"ipAddress"`
|
||||||
Peers []Peer `json:"peers"`
|
Peers []Peer `json:"peers"`
|
||||||
// Targets []Target `json:"targets"`
|
Targets []Target `json:"targets"`
|
||||||
}
|
}
|
||||||
|
|
||||||
type Target struct {
|
type Target struct {
|
||||||
@@ -181,6 +181,7 @@ func NewWireGuardService(interfaceName string, mtu int, generateAndSaveKeyTo str
|
|||||||
wsClient.RegisterHandler("newt/wg/peer/update", service.handleUpdatePeer)
|
wsClient.RegisterHandler("newt/wg/peer/update", service.handleUpdatePeer)
|
||||||
wsClient.RegisterHandler("newt/wg/target/add", service.handleAddTarget)
|
wsClient.RegisterHandler("newt/wg/target/add", service.handleAddTarget)
|
||||||
wsClient.RegisterHandler("newt/wg/target/remove", service.handleRemoveTarget)
|
wsClient.RegisterHandler("newt/wg/target/remove", service.handleRemoveTarget)
|
||||||
|
wsClient.RegisterHandler("newt/wg/target/update", service.handleUpdateTarget)
|
||||||
|
|
||||||
return service, nil
|
return service, nil
|
||||||
}
|
}
|
||||||
@@ -866,6 +867,60 @@ func (s *WireGuardService) handleAddTarget(msg websocket.WSMessage) {
|
|||||||
logger.Info("Added target subnet %s with port ranges: %v", target.CIDR, target.PortRange)
|
logger.Info("Added target subnet %s with port ranges: %v", target.CIDR, target.PortRange)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *WireGuardService) handleUpdateTarget(msg websocket.WSMessage) {
|
||||||
|
logger.Debug("Received message: %v", msg.Data)
|
||||||
|
|
||||||
|
// you are going to get a oldTarget and a newTarget in the message
|
||||||
|
type UpdateTargetRequest struct {
|
||||||
|
OldTarget Target `json:"oldTarget"`
|
||||||
|
NewTarget Target `json:"newTarget"`
|
||||||
|
}
|
||||||
|
|
||||||
|
jsonData, err := json.Marshal(msg.Data)
|
||||||
|
if err != nil {
|
||||||
|
logger.Info("Error marshaling data: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var request UpdateTargetRequest
|
||||||
|
if err := json.Unmarshal(jsonData, &request); err != nil {
|
||||||
|
logger.Info("Error unmarshaling data: %v", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if s.tnet == nil {
|
||||||
|
logger.Info("Netstack not initialized")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
prefix, err := netip.ParsePrefix(request.OldTarget.CIDR)
|
||||||
|
if err != nil {
|
||||||
|
logger.Info("Invalid CIDR %s: %v", request.OldTarget.CIDR, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
s.tnet.RemoveProxySubnetRule(prefix)
|
||||||
|
|
||||||
|
// Now add the new target
|
||||||
|
newPrefix, err := netip.ParsePrefix(request.NewTarget.CIDR)
|
||||||
|
if err != nil {
|
||||||
|
logger.Info("Invalid CIDR %s: %v", request.NewTarget.CIDR, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
var portRanges []netstack2.PortRange
|
||||||
|
for _, pr := range request.NewTarget.PortRange {
|
||||||
|
portRanges = append(portRanges, netstack2.PortRange{
|
||||||
|
Min: pr.Min,
|
||||||
|
Max: pr.Max,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
s.tnet.AddProxySubnetRule(newPrefix, portRanges)
|
||||||
|
|
||||||
|
logger.Info("Updated target subnet from %s to %s", request.OldTarget.CIDR, request.NewTarget.CIDR)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *WireGuardService) handleRemoveTarget(msg websocket.WSMessage) {
|
func (s *WireGuardService) handleRemoveTarget(msg websocket.WSMessage) {
|
||||||
logger.Debug("Received message: %v", msg.Data)
|
logger.Debug("Received message: %v", msg.Data)
|
||||||
|
|
||||||
|
|||||||
@@ -35,8 +35,12 @@ func NewLoggerWithWriter(writer LogWriter) *Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Init initializes the default logger
|
// Init initializes the default logger
|
||||||
func Init() *Logger {
|
func Init(logger *Logger) *Logger {
|
||||||
once.Do(func() {
|
once.Do(func() {
|
||||||
|
if logger != nil {
|
||||||
|
defaultLogger = logger
|
||||||
|
return
|
||||||
|
}
|
||||||
defaultLogger = NewLogger()
|
defaultLogger = NewLogger()
|
||||||
})
|
})
|
||||||
return defaultLogger
|
return defaultLogger
|
||||||
@@ -45,7 +49,7 @@ func Init() *Logger {
|
|||||||
// GetLogger returns the default logger instance
|
// GetLogger returns the default logger instance
|
||||||
func GetLogger() *Logger {
|
func GetLogger() *Logger {
|
||||||
if defaultLogger == nil {
|
if defaultLogger == nil {
|
||||||
Init()
|
Init(nil)
|
||||||
}
|
}
|
||||||
return defaultLogger
|
return defaultLogger
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user