Skip to content

Commit a323223

Browse files
committed
fix: persist dns nameserver node ids
1 parent dd2aece commit a323223

File tree

2 files changed

+20
-0
lines changed

2 files changed

+20
-0
lines changed

controllers/dns.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,9 @@ func createNs(w http.ResponseWriter, r *http.Request) {
8787
if req.Tags == nil {
8888
req.Tags = make(datatypes.JSONMap)
8989
}
90+
if req.Nodes == nil {
91+
req.Nodes = make(datatypes.JSONMap)
92+
}
9093
if gNs, ok := logic.GlobalNsList[req.Name]; ok {
9194
req.Servers = gNs.IPs
9295
}
@@ -107,6 +110,7 @@ func createNs(w http.ResponseWriter, r *http.Request) {
107110
MatchDomains: req.MatchDomains,
108111
Servers: req.Servers,
109112
Tags: req.Tags,
113+
Nodes: req.Nodes,
110114
Status: true,
111115
CreatedBy: r.Header.Get("user"),
112116
CreatedAt: time.Now().UTC(),
@@ -198,6 +202,9 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
198202
if updateNs.Tags == nil {
199203
updateNs.Tags = make(datatypes.JSONMap)
200204
}
205+
if updateNs.Nodes == nil {
206+
updateNs.Nodes = make(datatypes.JSONMap)
207+
}
201208

202209
ns := schema.Nameserver{ID: updateNs.ID}
203210
err = ns.Get(db.WithContext(r.Context()))
@@ -239,6 +246,7 @@ func updateNs(w http.ResponseWriter, r *http.Request) {
239246
ns.MatchAll = updateNs.MatchAll
240247
ns.Description = updateNs.Description
241248
ns.Name = updateNs.Name
249+
ns.Nodes = updateNs.Nodes
242250
ns.Status = updateNs.Status
243251
ns.UpdatedAt = time.Now().UTC()
244252

logic/dns.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,18 @@ func validateNameserverReq(ns schema.Nameserver) error {
418418
}
419419
}
420420
}
421+
// check if valid broadcast peers are added
422+
if len(ns.Nodes) > 0 {
423+
for nodeID := range ns.Nodes {
424+
node, err := GetNodeByID(nodeID)
425+
if err != nil {
426+
return errors.New("invalid node")
427+
}
428+
if node.Network != ns.NetworkID {
429+
return errors.New("invalid network node")
430+
}
431+
}
432+
}
421433

422434
return nil
423435
}

0 commit comments

Comments
 (0)