diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 22 |
1 files changed, 18 insertions, 4 deletions
@@ -8,6 +8,7 @@ import ( "penguins.lan/api" "penguins.lan/args" "penguins.lan/database" + "penguins.lan/dnsd" "penguins.lan/scheduled" ) @@ -41,11 +42,24 @@ func main() { if argv.Server { server := api.MakeServer(argv, dbConn) log.Printf("listening on :%d", argv.Port) + go func() { + if err := server.ListenAndServe(); err != nil { + log.Fatal(err) + } + }() + } - if err := server.ListenAndServe(); err != nil { - log.Fatal(err) - } + if argv.Dns { + dnsServer := dnsd.MakeServer(argv, dbConn) + log.Printf("dns listening on :%d for zone %s", argv.DnsPort, argv.DnsZone) + go func() { + if err := dnsServer.ListenAndServe(); err != nil { + log.Fatal(err) + } + }() } - select {} + if argv.Scheduler || argv.Server || argv.Dns { + select {} + } } |
