1
0
mirror of https://github.com/taigrr/godns synced 2025-01-18 04:03:25 -08:00

mutil domain support & split with comma

Signed-off-by: jerrylou <gunsluo@gmail.com>
This commit is contained in:
jerrylou 2017-02-16 01:43:21 +08:00
parent 63f39bad94
commit 25bd050669
2 changed files with 29 additions and 9 deletions

View File

@ -69,10 +69,9 @@ docker pull timothyye/godns:1.0
docker run -d --name godns --restart=always \
-e EMAIL=your_dnspod_account \
-e PASSWORD=your_dnspod_password \
-e DOMAIN=your_domain \
-e SUB_DOMAIN=your_sub_domain DOCKER_IMAGE_ID
-e DOMAINS="your_domain1,your_domain2" DOCKER_IMAGE_ID
```
## Enjoy it!
## Enjoy it!

View File

@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"io/ioutil"
"strings"
)
type Domain struct {
@ -41,13 +42,33 @@ func LoadSettings(configPath string, settings *Settings) error {
return nil
}
//LoadDomains -- Load domains from domains json
func LoadDomains(domainsJson string, domains *[]Domain) error {
//LoadDomains -- Load domains from domains string
func LoadDomains(domainsOrginStr string, domains *[]Domain) error {
err := json.Unmarshal([]byte(domainsJson), domains)
if err != nil {
fmt.Println("Error occurs while unmarshal domains json, please make sure domains json config correct!")
return err
domainsMap := make(map[string]*Domain)
domainsArray := strings.Split(domainsOrginStr, ",")
for _, host := range domainsArray {
dotCount := strings.Count(host, ".")
if dotCount < 2 {
continue
}
len := len(host)
pos := strings.Index(host, ".")
subDomain := host[0:pos]
domainName := host[pos+1 : len]
if d, exist := domainsMap[domainName]; exist {
d.SubDomains = append(d.SubDomains, subDomain)
} else {
d := new(Domain)
d.DomainName = domainName
d.SubDomains = append(d.SubDomains, subDomain)
domainsMap[domainName] = d
}
}
for _, d := range domainsMap {
*domains = append(*domains, *d)
}
return nil