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
|
||
|
}
|