diff --git a/gui_linux.go b/gui_linux.go index 544209a..b4040cf 100644 --- a/gui_linux.go +++ b/gui_linux.go @@ -93,6 +93,7 @@ import ( func init() { _ = os.Setenv("WEBKIT_DISABLE_DMABUF_RENDERER", "1") _ = os.Setenv("WEBKIT_FORCE_COMPOSITING_MODE", "1") + _ = os.Setenv("JSC_SIGNAL_FOR_GC", "SIGUSR2") } // installDesktopIntegration automatically installs icons and desktop file into user's XDG directories diff --git a/main.go b/main.go index 8b627b6..18c2ce0 100644 --- a/main.go +++ b/main.go @@ -104,12 +104,20 @@ func main() { // 4. DNS Server dnsSrv := dns.NewServer(cfg.BaseDomain, cfg.ServerVPNIP, cfg.DNSPort) if err := dnsSrv.Start(); err != nil { - log.Printf("[BenzCloud DNS] Notice: Port %d bind notice (%v). Starting fallback DNS on port 5353...\n", cfg.DNSPort, err) - dnsSrv = dns.NewServer(cfg.BaseDomain, cfg.ServerVPNIP, 5353) - if err := dnsSrv.Start(); err != nil { - log.Printf("[BenzCloud DNS] Fallback notice: %v\n", err) - } else { - cfg.DNSPort = 5353 + log.Printf("[BenzCloud DNS] Notice: Port %d requires root/CAP_NET_BIND_SERVICE (%v). Trying unprivileged fallback port...\n", cfg.DNSPort, err) + fallbackPorts := []int{1053, 5354, 8053} + started := false + for _, fbPort := range fallbackPorts { + candidate := dns.NewServer(cfg.BaseDomain, cfg.ServerVPNIP, fbPort) + if err := candidate.Start(); err == nil { + dnsSrv = candidate + cfg.DNSPort = fbPort + started = true + break + } + } + if !started { + log.Printf("[BenzCloud DNS] Warning: Could not bind fallback DNS server. Local DNS resolution will be disabled.\n") } }