func (n *NSQD) Main() { var httpListener net.Listener var httpsListener net.Listener ctx := &context{n} tcpListener, err := net.Listen("tcp", n.opts.TCPAddress) if err != nil { n.logf("FATAL: listen (%s) failed - %s", n.opts.TCPAddress, err) os.Exit(1) } n.Lock() n.tcpListener = tcpListener n.Unlock() tcpServer := &tcpServer{ctx: ctx} n.waitGroup.Wrap(func() { protocol.TCPServer(n.tcpListener, tcpServer, n.opts.Logger) }) if n.tlsConfig != nil && n.opts.HTTPSAddress != "" { httpsListener, err = tls.Listen("tcp", n.opts.HTTPSAddress, n.tlsConfig) if err != nil { n.logf("FATAL: listen (%s) failed - %s", n.opts.HTTPSAddress, err) os.Exit(1) } n.Lock() n.httpsListener = httpsListener n.Unlock() httpsServer := &httpServer{ ctx: ctx, tlsEnabled: true, tlsRequired: true, } n.waitGroup.Wrap(func() { http_api.Serve(n.httpsListener, httpsServer, n.opts.Logger, "HTTPS") }) } httpListener, err = net.Listen("tcp", n.opts.HTTPAddress) if err != nil { n.logf("FATAL: listen (%s) failed - %s", n.opts.HTTPAddress, err) os.Exit(1) } n.Lock() n.httpListener = httpListener n.Unlock() httpServer := &httpServer{ ctx: ctx, tlsEnabled: false, tlsRequired: n.opts.TLSRequired == TLSRequired, } n.waitGroup.Wrap(func() { http_api.Serve(n.httpListener, httpServer, n.opts.Logger, "HTTP") }) n.waitGroup.Wrap(func() { n.idPump() }) n.waitGroup.Wrap(func() { n.lookupLoop() }) if n.opts.StatsdAddress != "" { n.waitGroup.Wrap(func() { n.statsdLoop() }) } }
func (l *NSQLookupd) Main() { ctx := &Context{l} tcpListener, err := net.Listen("tcp", l.opts.TCPAddress) if err != nil { l.logf("FATAL: listen (%s) failed - %s", l.opts.TCPAddress, err) os.Exit(1) } l.Lock() l.tcpListener = tcpListener l.Unlock() tcpServer := &tcpServer{ctx: ctx} l.waitGroup.Wrap(func() { protocol.TCPServer(tcpListener, tcpServer, l.opts.Logger) }) httpListener, err := net.Listen("tcp", l.opts.HTTPAddress) if err != nil { l.logf("FATAL: listen (%s) failed - %s", l.opts.HTTPAddress, err) os.Exit(1) } l.Lock() l.httpListener = httpListener l.Unlock() httpServer := newHTTPServer(ctx) l.waitGroup.Wrap(func() { http_api.Serve(httpListener, httpServer, "HTTP", l.opts.Logger) }) }
func (l *NSQLookupd) Main() { ctx := &Context{l} tcpListener, err := net.Listen("tcp", l.tcpAddr.String()) if err != nil { l.logf("FATAL: listen (%s) failed - %s", l.tcpAddr, err) os.Exit(1) } l.tcpListener = tcpListener tcpServer := &tcpServer{ctx: ctx} l.waitGroup.Wrap(func() { protocol.TCPServer(tcpListener, tcpServer, l.opts.Logger) }) httpListener, err := net.Listen("tcp", l.httpAddr.String()) if err != nil { l.logf("FATAL: listen (%s) failed - %s", l.httpAddr, err) os.Exit(1) } l.httpListener = httpListener httpServer := &httpServer{ctx: ctx} l.waitGroup.Wrap(func() { http_api.Serve(httpListener, httpServer, l.opts.Logger, "HTTP") }) }