...
1 package main
2
3 import (
4 "os"
5 "os/signal"
6
7 syscall "golang.org/x/sys/unix"
8
9 "github.com/go-logr/logr"
10
11 "edge-infra.dev/pkg/lib/fog"
12 "edge-infra.dev/pkg/sds/k8s/daemonsetdns"
13 "edge-infra.dev/pkg/sds/k8s/iplookup"
14 )
15
16
17 func startDNSServer(net string, cl *iplookup.IPLookup, logger logr.Logger) {
18 server := daemonsetdns.Dnsserver(net, cl)
19 if err := server.ListenAndServe(); err != nil {
20 logger.Error(err, "Error occurred running DNS server")
21 os.Exit(1)
22 }
23 }
24
25 func main() {
26 log := fog.New().WithName("daemonsetdns")
27 log.Info("Starting server")
28
29 cl, err := iplookup.New()
30 if err != nil {
31 log.Error(err, "Unable to start iplookup client")
32 }
33
34
35 go startDNSServer("tcp", cl, log)
36 go startDNSServer("udp", cl, log)
37
38 sig := make(chan os.Signal, 1)
39 signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM)
40 s := <-sig
41 log.Info("Signal received, stopping", "signal", s)
42 }
43
View as plain text