diff --git a/dns_handler.go b/dns_handler.go index 66eeae5..a8f1db1 100644 --- a/dns_handler.go +++ b/dns_handler.go @@ -2,6 +2,8 @@ package main import ( "fmt" + // "github.com/bitly/go-simplejson" + "encoding/json" "io/ioutil" "net/http" "net/url" @@ -43,6 +45,56 @@ func api_version() { post_data("/Info.Version", nil) } +func get_domain(name string) int { + + ret := -1 + values := url.Values{} + values.Add("type", "all") + values.Add("offset", "0") + values.Add("length", "20") + + response, err := post_data("/Domain.List", values) + + if err != nil { + fmt.Println("Failed to get domain list...") + return ret + } + + var list domain_list + json.Unmarshal([]byte(response), &list) + + // json, parse_err := simplejson.NewJson([]byte(response)) + + // if parse_err != nil { + // fmt.Println(parse_err.Error()) + // } + + // if json.Get("status").Get("code").MustString() == "1" { + // domains, _ := json.Get("domains").Array() + + // // fmt.Println(string(domains)) + // for _, d := range domains { + // m := d.(map[string]interface{}) + // if m["name"] == name { + // id := simplejson.NewJson(m["id"]).Int() + // fmt.Println(id) + // } + // // if d["name"] == name { + // // fmt.Println(d["name"]) + // // ret = d["id"] + // // } + // // if d == "name" { + // // if v == name { + // // fmt.Println(v) + // // } + // // } + // } + // } + + fmt.Printf("Domain id is: %d", ret) + return ret +} + func post_data(url string, content url.Values) (string, error) { client := &http.Client{} values := generate_header(content) diff --git a/godns.go b/godns.go index e9e7b11..798f831 100644 --- a/godns.go +++ b/godns.go @@ -35,7 +35,7 @@ func dns_loop(loop chan bool) { //Continue to check the IP of sub-domain if len(currentIP) > 0 { - + get_domain(Configuration.Domain) } api_version() diff --git a/response_entity.go b/response_entity.go new file mode 100644 index 0000000..090fd28 --- /dev/null +++ b/response_entity.go @@ -0,0 +1,20 @@ +package main + +type status struct { + code string + message string + created_at string +} + +type domain struct { + id int + name string + status string + records string + owner string +} + +type domain_list struct { + ret_status status + domains []domain +}