diff --git a/dnscrypt-proxy/config.go b/dnscrypt-proxy/config.go index 9a0cfb3a..0218aad5 100644 --- a/dnscrypt-proxy/config.go +++ b/dnscrypt-proxy/config.go @@ -211,7 +211,7 @@ func findConfigFile(configFile *string) (string, error) { return path.Join(pwd, *configFile), nil } -func ConfigLoad(proxy *Proxy) error { +func ConfigLoad(proxy *Proxy, svcFlag *string) error { version := flag.Bool("version", false, "print current proxy version") resolve := flag.String("resolve", "", "resolve a name using system libraries") list := flag.Bool("list", false, "print the list of available resolvers for the enabled filters") @@ -225,6 +225,9 @@ func ConfigLoad(proxy *Proxy) error { flag.Parse() + if *svcFlag == "stop" || *svcFlag == "uninstall" { + return nil + } if *version { fmt.Println(AppVersion) os.Exit(0) diff --git a/dnscrypt-proxy/main.go b/dnscrypt-proxy/main.go index 1343eee9..36fd3f65 100644 --- a/dnscrypt-proxy/main.go +++ b/dnscrypt-proxy/main.go @@ -56,6 +56,9 @@ func main() { } app.proxy = NewProxy() _ = ServiceManagerStartNotify() + if err := ConfigLoad(app.proxy, svcFlag); err != nil { + dlog.Fatal(err) + } if len(*svcFlag) != 0 { if svc == nil { dlog.Fatal("Built-in service installation is not supported on this platform") @@ -82,9 +85,6 @@ func main() { dlog.Fatal(err) } } else { - if err := ConfigLoad(app.proxy); err != nil { - dlog.Fatal(err) - } app.signalWatch() app.appMain() } @@ -93,15 +93,10 @@ func main() { } func (app *App) Start(service service.Service) error { - go func() { - if err := ConfigLoad(app.proxy); err != nil { - dlog.Fatal(err) - } - if err := app.proxy.InitPluginsGlobals(); err != nil { - dlog.Fatal(err) - } - app.appMain() - }() + if err := app.proxy.InitPluginsGlobals(); err != nil { + dlog.Fatal(err) + } + go app.appMain() return nil }