From c6e8a378544c055721ead3557c1de21bf30e4ab3 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Tue, 31 Dec 2019 14:23:44 +0100 Subject: Simplify --- cmd/zdns/main.go | 28 +++++++++++++--------------- cmd/zdns/main_test.go | 22 +++------------------- 2 files changed, 16 insertions(+), 34 deletions(-) diff --git a/cmd/zdns/main.go b/cmd/zdns/main.go index cd01e9c..d116fff 100644 --- a/cmd/zdns/main.go +++ b/cmd/zdns/main.go @@ -28,7 +28,6 @@ type server interface{ ListenAndServe() error } type cli struct { servers []server - started int wg sync.WaitGroup } @@ -59,18 +58,17 @@ func (c *cli) runServer(server server) { fatal(err) } }() - c.started++ } -func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal) *cli { - f := flag.CommandLine - f.SetOutput(out) - confFile := f.String("f", configFile, "config file `path`") - help := f.Bool("h", false, "print usage") - f.Parse(args) +func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal) (*cli, error) { + cl := flag.CommandLine + cl.SetOutput(out) + confFile := cl.String("f", configFile, "config file `path`") + help := cl.Bool("h", false, "print usage") + cl.Parse(args) if *help { - f.Usage() - return nil + cl.Usage() + return nil, fmt.Errorf("usage option given") } // Config @@ -116,19 +114,19 @@ func newCli(out io.Writer, args []string, configFile string, sig chan os.Signal) sigHandler.OnClose(httpSrv) servers = append(servers, httpSrv) } - return &cli{servers: servers} + return &cli{servers: servers}, nil } func (c *cli) run() { - for _, srv := range c.servers { - c.runServer(srv) + for _, s := range c.servers { + c.runServer(s) } c.wg.Wait() } func main() { - c := newCli(os.Stderr, os.Args[1:], defaultConfigFile(), make(chan os.Signal, 1)) - if c != nil { + c, err := newCli(os.Stderr, os.Args[1:], defaultConfigFile(), make(chan os.Signal, 1)) + if err == nil { c.run() } } diff --git a/cmd/zdns/main_test.go b/cmd/zdns/main_test.go index 647e8cf..da0bfcb 100644 --- a/cmd/zdns/main_test.go +++ b/cmd/zdns/main_test.go @@ -3,10 +3,7 @@ package main import ( "io/ioutil" "os" - "sync" - "syscall" "testing" - "time" ) func tempFile(t *testing.T, s string) (string, error) { @@ -40,21 +37,8 @@ hijack_mode = "zero" } defer os.Remove(f) - sig := make(chan os.Signal, 1) - c := newCli(os.Stderr, []string{"-f", f}, f, sig) - var wg sync.WaitGroup - wg.Add(1) - go func() { - defer wg.Done() - c.run() - }() - ts := time.Now() - for c.started < 2 { - time.Sleep(10 * time.Millisecond) // Wait for servers to start - if time.Since(ts) > 2*time.Second { - t.Fatal("timed out waiting for servers to start") - } + _, err = newCli(ioutil.Discard, []string{"-f", f}, f, make(chan os.Signal, 1)) + if err != nil { + t.Fatal(err) } - sig <- syscall.SIGTERM - wg.Wait() } -- cgit v1.2.3