mirror of
https://github.com/MarekWojt/gertdns.git
synced 2025-12-15 12:59:53 +01:00
Webserver
This commit is contained in:
52
main.go
52
main.go
@@ -6,12 +6,19 @@ import (
|
||||
|
||||
"github.com/MarekWojt/gertdns/config"
|
||||
"github.com/MarekWojt/gertdns/dns"
|
||||
"github.com/MarekWojt/gertdns/web"
|
||||
rootDns "github.com/miekg/dns"
|
||||
)
|
||||
|
||||
var (
|
||||
configFile = flag.String("configFile", "conf.toml", "Path to configuration file")
|
||||
)
|
||||
|
||||
type dnsResult struct {
|
||||
server *rootDns.Server
|
||||
err error
|
||||
}
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
|
||||
@@ -20,10 +27,43 @@ func main() {
|
||||
log.Fatalf("Failed to load configuration: %s\n ", err.Error())
|
||||
}
|
||||
|
||||
dns.Load()
|
||||
server, err := dns.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to start DNS server: %s\n ", err.Error())
|
||||
}
|
||||
defer server.Shutdown()
|
||||
dns.Init()
|
||||
web.Init()
|
||||
|
||||
webChan := make(chan error)
|
||||
dnsChan := make(chan dnsResult)
|
||||
go func() {
|
||||
server, err := dns.Run()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to start DNS server: %s\n ", err.Error())
|
||||
}
|
||||
|
||||
dnsChan <- dnsResult{
|
||||
server: server,
|
||||
err: err,
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
err := web.RunSocket()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to start HTTP socket: %s\n ", err.Error())
|
||||
}
|
||||
|
||||
webChan <- err
|
||||
}()
|
||||
|
||||
go func() {
|
||||
err := web.RunHTTP()
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to start HTTP server: %s\n ", err.Error())
|
||||
}
|
||||
|
||||
webChan <- err
|
||||
}()
|
||||
|
||||
currentDnsResult := <-dnsChan
|
||||
defer currentDnsResult.server.Shutdown()
|
||||
<-webChan
|
||||
<-webChan
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user