chore: minor cleanup

This commit is contained in:
pommee
2025-07-14 19:18:16 +02:00
parent b8521974fd
commit 44dbde3f6a
6 changed files with 46 additions and 74 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ import (
func (s *DNSServer) InitDoT(cert tls.Certificate) (*dns.Server, error) {
notifyReady := func() {
log.Info("Started DoT server on port %d", s.Config.DNS.DoTPort)
log.Info("Started DoT (dns-over-tls) server on port %d", s.Config.DNS.DoTPort)
}
tlsConfig := &tls.Config{
+1 -3
View File
@@ -74,9 +74,7 @@ func NewDNSServer(config *settings.Config, dbManager *database.DatabaseManager,
}
var client dns.Client
if cert.Certificate == nil {
client = dns.Client{Net: "udp"}
} else {
if cert.Certificate != nil {
client = dns.Client{Net: "tcp-tls"}
}
-19
View File
@@ -1,19 +0,0 @@
package server
import (
"fmt"
"github.com/miekg/dns"
)
func (s *DNSServer) InitTCP() (*dns.Server, error) {
server := &dns.Server{
Addr: fmt.Sprintf("%s:%d", s.Config.DNS.Address, s.Config.DNS.Port),
Net: "tcp",
Handler: s,
ReusePort: true,
UDPSize: s.Config.DNS.UDPSize,
}
return server, nil
}
-22
View File
@@ -1,22 +0,0 @@
package server
import (
"fmt"
"github.com/miekg/dns"
)
type notifyDNSReady func()
func (s *DNSServer) InitUDP(notifyReady notifyDNSReady) (*dns.Server, error) {
server := &dns.Server{
Addr: fmt.Sprintf("%s:%d", s.Config.DNS.Address, s.Config.DNS.Port),
Net: "udp",
Handler: s,
ReusePort: true,
UDPSize: s.Config.DNS.UDPSize,
NotifyStartedFunc: notifyReady,
}
return server, nil
}
+1 -2
View File
@@ -212,8 +212,7 @@ func (config *Config) GetCertificate() (tls.Certificate, error) {
if config.DNS.TLSCertFile != "" && config.DNS.TLSKeyFile != "" {
cert, err := tls.LoadX509KeyPair(config.DNS.TLSCertFile, config.DNS.TLSKeyFile)
if err != nil {
log.Error("Failed to load TLS certificate: %s", err)
return tls.Certificate{}, err
return tls.Certificate{}, fmt.Errorf("Failed to load TLS certificate: %s", err)
}
return cert, nil
+43 -27
View File
@@ -146,7 +146,7 @@ func startServer(config *settings.Config, ansi bool) {
cert, err := config.GetCertificate()
if err != nil {
log.Fatal("Failed to load TLS certificate: %s", err)
log.Fatal("%s", err)
}
dnsServer, err := server.NewDNSServer(config, dbManager, notificationManager, cert)
@@ -156,52 +156,66 @@ func startServer(config *settings.Config, ansi bool) {
go dnsServer.ProcessLogEntries()
blacklistEntry, err := lists.InitializeBlacklist(dnsServer.DBManager)
if err != nil {
log.Fatal("Failed to initialize blacklist: %v", err)
}
dnsServer.Blacklist = blacklistEntry
domains, err := blacklistEntry.CountDomains()
if err != nil {
log.Warning("Failed to count blacklist domains: %v", err)
}
currentVersion := setup.GetVersionOrDefault(version)
asciiart.AsciiArt(config, domains, currentVersion.Original(), config.API.Authentication, ansi)
dnsReadyChannel := make(chan struct{})
errorChannel := make(chan struct{}, 1)
notifyReady := func() {
blacklistEntry, err := lists.InitializeBlacklist(dnsServer.DBManager)
if err != nil {
log.Error("Failed to initialize blacklist: %v", err)
errorChannel <- struct{}{}
return
}
dnsServer.Blacklist = blacklistEntry
domains, err := blacklistEntry.CountDomains()
if err != nil {
log.Warning("Failed to count blacklist domains: %v", err)
}
currentVersion := setup.GetVersionOrDefault(version)
asciiart.AsciiArt(config, domains, currentVersion.Original(), config.API.Authentication, ansi)
log.Info("Started DNS server on: %s:%d", config.DNS.Address, config.DNS.Port)
close(dnsReadyChannel)
}
udpServer, err := dnsServer.InitUDP(notifyReady)
if err != nil {
log.Fatal("Failed to initialize DNS server: %s", err)
udpServer := &dns.Server{
Addr: fmt.Sprintf("%s:%d", config.DNS.Address, config.DNS.Port),
Net: "udp",
Handler: dnsServer,
ReusePort: true,
UDPSize: config.DNS.UDPSize,
}
tcpServer, _ := dnsServer.InitTCP()
if err != nil {
log.Fatal("Failed to initialize TCP server: %s", err)
tcpServer := &dns.Server{
Addr: fmt.Sprintf("%s:%d", config.DNS.Address, config.DNS.Port),
Net: "tcp",
Handler: dnsServer,
ReusePort: true,
UDPSize: config.DNS.UDPSize,
NotifyStartedFunc: notifyReady,
}
startServices(cert, dnsServer, udpServer, tcpServer, config, ansi, dnsReadyChannel, errorChannel)
}
func startServices(cert tls.Certificate, dnsServer *server.DNSServer, udpServer, tcpServer *dns.Server, config *settings.Config, ansi bool, dnsReadyChannel chan struct{}, errorChannel chan struct{}) {
func startServices(
cert tls.Certificate,
dnsServer *server.DNSServer,
udpServer *dns.Server,
tcpServer *dns.Server,
config *settings.Config,
ansi bool,
dnsReadyChannel chan struct{},
errorChannel chan struct{},
) {
var (
wg sync.WaitGroup
sigChannel = make(chan os.Signal, 1)
)
signal.Notify(sigChannel, syscall.SIGINT, syscall.SIGTERM)
wg.Add(2)
wg.Add(1)
go func() {
defer wg.Done()
@@ -211,6 +225,7 @@ func startServices(cert tls.Certificate, dnsServer *server.DNSServer, udpServer,
}
}()
wg.Add(1)
go func() {
defer wg.Done()
@@ -246,9 +261,9 @@ func startServices(cert tls.Certificate, dnsServer *server.DNSServer, udpServer,
defer wg.Done()
if serverIP, err := api.GetServerIP(); err == nil {
log.Info("DoH server running at https://%s:%d/dns-query", serverIP, config.DNS.DoHPort)
log.Info("DoH (dns-over-https) server running at https://%s:%d/dns-query", serverIP, config.DNS.DoHPort)
} else {
log.Info("DoH server running on port :%d", config.DNS.DoHPort)
log.Info("DoH (dns-over-https) server running on port :%d", config.DNS.DoHPort)
}
if err := dohServer.ListenAndServeTLS(config.DNS.TLSCertFile, config.DNS.TLSKeyFile); err != nil {
@@ -260,6 +275,7 @@ func startServices(cert tls.Certificate, dnsServer *server.DNSServer, udpServer,
prefetcher := prefetch.New(dnsServer)
wg.Add(1)
go func() {
defer wg.Done()