From 32a205dc231f4c18af6b86590f67a83b40004098 Mon Sep 17 00:00:00 2001 From: Stephen Searles Date: Wed, 28 Feb 2018 17:14:54 -0500 Subject: [PATCH] nsqlookupd: Main returns error --- apps/nsqlookupd/nsqlookupd.go | 6 +++++- nsqlookupd/nsqlookupd.go | 13 ++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/apps/nsqlookupd/nsqlookupd.go b/apps/nsqlookupd/nsqlookupd.go index c70a48fec..9fcc06c0e 100644 --- a/apps/nsqlookupd/nsqlookupd.go +++ b/apps/nsqlookupd/nsqlookupd.go @@ -77,7 +77,11 @@ func (p *program) Start() error { options.Resolve(opts, flagSet, cfg) daemon := nsqlookupd.New(opts) - daemon.Main() + err := daemon.Main() + if err != nil { + log.Fatalf("ERROR: failed to start nsqlookupd: %v", err) + } + p.nsqlookupd = daemon return nil } diff --git a/nsqlookupd/nsqlookupd.go b/nsqlookupd/nsqlookupd.go index ffdbf85c3..d2dcd0928 100644 --- a/nsqlookupd/nsqlookupd.go +++ b/nsqlookupd/nsqlookupd.go @@ -1,6 +1,7 @@ package nsqlookupd import ( + "fmt" "log" "net" "os" @@ -42,18 +43,18 @@ func New(opts *Options) *NSQLookupd { return n } -func (l *NSQLookupd) Main() { +// Main starts an instance of nsqlookupd and returns an +// error if there was a problem starting up. +func (l *NSQLookupd) Main() error { ctx := &Context{l} tcpListener, err := net.Listen("tcp", l.opts.TCPAddress) if err != nil { - l.logf(LOG_FATAL, "listen (%s) failed - %s", l.opts.TCPAddress, err) - os.Exit(1) + return fmt.Errorf("listen (%s) failed - %s", l.opts.TCPAddress, err) } httpListener, err := net.Listen("tcp", l.opts.HTTPAddress) if err != nil { - l.logf(LOG_FATAL, "listen (%s) failed - %s", l.opts.HTTPAddress, err) - os.Exit(1) + return fmt.Errorf("listen (%s) failed - %s", l.opts.TCPAddress, err) } l.tcpListener = tcpListener @@ -67,6 +68,8 @@ func (l *NSQLookupd) Main() { l.waitGroup.Wrap(func() { http_api.Serve(httpListener, httpServer, "HTTP", l.logf) }) + + return nil } func (l *NSQLookupd) RealTCPAddr() *net.TCPAddr {