forked from loweel/zabov
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.0 KiB
Go
47 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"github.com/miekg/dns"
|
|
)
|
|
|
|
//MyDNS is my dns server
|
|
var MyDNS *dns.Server
|
|
|
|
//ZabovUpDNS keeps the name of upstream DNSs
|
|
var ZabovUpDNS string
|
|
|
|
//ZabovSingleBL list of urls returning a file with just names of domains
|
|
var ZabovSingleBL string
|
|
|
|
//ZabovDoubleBL list of urls returning a file with IP<space>domain
|
|
var ZabovDoubleBL string
|
|
|
|
//ZabovAddBL is the IP we want to send all the clients to. Usually is 127.0.0.1
|
|
var ZabovAddBL string
|
|
|
|
//ZabovCacheTTL is the amount of hours we cache records of DNS
|
|
var ZabovCacheTTL int
|
|
|
|
//ZabovKillTTL is the amount of hours we cache the killfile
|
|
var ZabovKillTTL int
|
|
|
|
//ZabovHostsFile is the file we use to keep our hosts
|
|
var ZabovHostsFile string
|
|
|
|
//ZabovDNSArray is the array containing all the DNS we mention
|
|
var ZabovDNSArray []string
|
|
|
|
type handler struct{}
|
|
|
|
func main() {
|
|
|
|
MyDNS.Handler = &handler{}
|
|
if err := MyDNS.ListenAndServe(); err != nil {
|
|
log.Printf("Failed to set udp listener %s\n", err.Error())
|
|
} else {
|
|
log.Printf("Listener running \n")
|
|
}
|
|
}
|