fix: persist dns nameserver node ids

This commit is contained in:
abhishek9686
2025-09-04 08:59:18 +05:30
parent dd2aece0de
commit a3232234b3
2 changed files with 20 additions and 0 deletions
+8
View File
@@ -87,6 +87,9 @@ func createNs(w http.ResponseWriter, r *http.Request) {
if req.Tags == nil {
req.Tags = make(datatypes.JSONMap)
}
if req.Nodes == nil {
req.Nodes = make(datatypes.JSONMap)
}
if gNs, ok := logic.GlobalNsList[req.Name]; ok {
req.Servers = gNs.IPs
}
@@ -107,6 +110,7 @@ func createNs(w http.ResponseWriter, r *http.Request) {
MatchDomains: req.MatchDomains,
Servers: req.Servers,
Tags: req.Tags,
Nodes: req.Nodes,
Status: true,
CreatedBy: r.Header.Get("user"),
CreatedAt: time.Now().UTC(),
@@ -198,6 +202,9 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
if updateNs.Tags == nil {
updateNs.Tags = make(datatypes.JSONMap)
}
if updateNs.Nodes == nil {
updateNs.Nodes = make(datatypes.JSONMap)
}
ns := schema.Nameserver{ID: updateNs.ID}
err = ns.Get(db.WithContext(r.Context()))
@@ -239,6 +246,7 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
ns.MatchAll = updateNs.MatchAll
ns.Description = updateNs.Description
ns.Name = updateNs.Name
ns.Nodes = updateNs.Nodes
ns.Status = updateNs.Status
ns.UpdatedAt = time.Now().UTC()
+12
View File
@@ -418,6 +418,18 @@ func validateNameserverReq(ns schema.Nameserver) error {
}
}
}
// check if valid broadcast peers are added
if len(ns.Nodes) > 0 {
for nodeID := range ns.Nodes {
node, err := GetNodeByID(nodeID)
if err != nil {
return errors.New("invalid node")
}
if node.Network != ns.NetworkID {
return errors.New("invalid network node")
}
}
}
return nil
}