@@ -375,22 +375,17 @@ func ValidateNameserverReq(ns schema.Nameserver) error {
375
375
if len (ns .Servers ) == 0 {
376
376
return errors .New ("atleast one nameserver should be specified" )
377
377
}
378
- if ! IsValidMatchDomain (ns .MatchDomain ) {
379
- return errors .New ("invalid match domain" )
378
+ if ! ns . MatchAll && len (ns .MatchDomains ) == 0 {
379
+ return errors .New ("atleast one match domain is required " )
380
380
}
381
- return nil
382
- }
383
-
384
- func ValidateUpdateNameserverReq (updateNs schema.Nameserver ) error {
385
- if updateNs .Name == "" {
386
- return errors .New ("name is required" )
387
- }
388
- if len (updateNs .Servers ) == 0 {
389
- return errors .New ("atleast one nameserver should be specified" )
390
- }
391
- if ! IsValidMatchDomain (updateNs .MatchDomain ) {
392
- return errors .New ("invalid match domain" )
381
+ if ! ns .MatchAll {
382
+ for _ , matchDomain := range ns .MatchDomains {
383
+ if ! IsValidMatchDomain (matchDomain ) {
384
+ return errors .New ("invalid match domain" )
385
+ }
386
+ }
393
387
}
388
+
394
389
return nil
395
390
}
396
391
@@ -405,18 +400,22 @@ func GetNameserversForNode(node *models.Node) (returnNsLi []models.Nameserver) {
405
400
}
406
401
_ , all := nsI .Tags ["*" ]
407
402
if all {
408
- returnNsLi = append (returnNsLi , models.Nameserver {
409
- IPs : nsI .Servers ,
410
- MatchDomain : nsI .MatchDomain ,
411
- })
403
+ for _ , matchDomain := range nsI .MatchDomains {
404
+ returnNsLi = append (returnNsLi , models.Nameserver {
405
+ IPs : nsI .Servers ,
406
+ MatchDomain : matchDomain ,
407
+ })
408
+ }
412
409
continue
413
410
}
414
411
for tagI := range node .Tags {
415
412
if _ , ok := nsI .Tags [tagI .String ()]; ok {
416
- returnNsLi = append (returnNsLi , models.Nameserver {
417
- IPs : nsI .Servers ,
418
- MatchDomain : nsI .MatchDomain ,
419
- })
413
+ for _ , matchDomain := range nsI .MatchDomains {
414
+ returnNsLi = append (returnNsLi , models.Nameserver {
415
+ IPs : nsI .Servers ,
416
+ MatchDomain : matchDomain ,
417
+ })
418
+ }
420
419
}
421
420
}
422
421
}
@@ -451,18 +450,23 @@ func GetNameserversForHost(h *models.Host) (returnNsLi []models.Nameserver) {
451
450
}
452
451
_ , all := nsI .Tags ["*" ]
453
452
if all {
454
- returnNsLi = append (returnNsLi , models.Nameserver {
455
- IPs : nsI .Servers ,
456
- MatchDomain : nsI .MatchDomain ,
457
- })
453
+ for _ , matchDomain := range nsI .MatchDomains {
454
+ returnNsLi = append (returnNsLi , models.Nameserver {
455
+ IPs : nsI .Servers ,
456
+ MatchDomain : matchDomain ,
457
+ })
458
+ }
458
459
continue
459
460
}
460
461
for tagI := range node .Tags {
461
462
if _ , ok := nsI .Tags [tagI .String ()]; ok {
462
- returnNsLi = append (returnNsLi , models.Nameserver {
463
- IPs : nsI .Servers ,
464
- MatchDomain : nsI .MatchDomain ,
465
- })
463
+ for _ , matchDomain := range nsI .MatchDomains {
464
+ returnNsLi = append (returnNsLi , models.Nameserver {
465
+ IPs : nsI .Servers ,
466
+ MatchDomain : matchDomain ,
467
+ })
468
+ }
469
+
466
470
}
467
471
}
468
472
}
0 commit comments