52 lines
971 B
Go
52 lines
971 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"net"
|
|
"net/http"
|
|
_ "net/http/pprof"
|
|
"os"
|
|
"os/signal"
|
|
"runtime"
|
|
"syscall"
|
|
"time"
|
|
|
|
"github.com/AdguardTeam/AdGuardHome/dnsforward"
|
|
)
|
|
|
|
//
|
|
// main function
|
|
//
|
|
func main() {
|
|
go func() {
|
|
log.Println(http.ListenAndServe("localhost:6060", nil))
|
|
}()
|
|
go func() {
|
|
for range time.Tick(time.Second) {
|
|
log.Printf("goroutines = %d", runtime.NumGoroutine())
|
|
}
|
|
}()
|
|
s := dnsforward.Server{}
|
|
err := s.Start(nil)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
time.Sleep(time.Second)
|
|
err = s.Stop()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = s.Start(&dnsforward.ServerConfig{UDPListenAddr: &net.UDPAddr{Port: 53535}})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
err = s.Reconfigure(dnsforward.ServerConfig{UDPListenAddr: &net.UDPAddr{Port: 53, IP: net.ParseIP("0.0.0.0")}})
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
log.Printf("Now serving DNS")
|
|
signal_channel := make(chan os.Signal)
|
|
signal.Notify(signal_channel, syscall.SIGINT, syscall.SIGTERM)
|
|
<-signal_channel
|
|
}
|