fmt.Fprintf(tmpfile, "server 127.0.0.1\n")
fmt.Fprintf(tmpfile, "zone %s\n", zone)
fmt.Fprintf(tmpfile, "del %s 300 IN %s\n", host, rectype)
- fmt.Fprintf(tmpfile, "add %s 300 IN %s %s\n", host, rectype, ip)
+ if "::" != ip && "0.0.0.0" != ip {
+ fmt.Fprintf(tmpfile, "add %s 300 IN %s %s\n", host, rectype, ip)
+ }
fmt.Fprintf(tmpfile, "send\n")
tmpfile.Close()
+ /*
+ data, _ := ioutil.ReadFile(tmpfile.Name())
+ log.Printf("%s\n", data)
+ */
out, err := exec.Command("/usr/bin/knsupdate", tmpfile.Name()).Output()
if err != nil {
log.Print("User hosts: ", hosts)
//check ip
q := r.URL.Query()
-
- myip := "0.0.0.0"
- ver := 4
+ log.Print("q: ", q)
+ myip := "[unset]"
+ ver := 0
valid := false
myip_count := len(q["myip"])
log.Print("myips: ", myip_count)
if !hostip {
if myip_count == 1 {
- myip, ver, valid = checkIP(q["myip"][0]) //one IP to rule them all
+ myip = q["myip"][0]
+ if "::" == myip {
+ ver = 6
+ valid = true
+ log.Printf("delete AAAA req")
+ } else if "0.0.0.0" == myip {
+ ver = 4
+ valid = true
+ log.Printf("delete A req")
+ } else {
+ myip, ver, valid = checkIP(myip) //one IP to rule them all
+ }
}
log.Printf("IP: %s (valid:%v, ver:%d)", myip, valid, ver)
if !valid {