From 4a087841438e706ab73f76e47497be1c613878d3 Mon Sep 17 00:00:00 2001 From: Scott Leggett Date: Fri, 4 Mar 2022 00:16:01 +0800 Subject: [PATCH] fix: gracefully handle NATS connection close in ssh-portal --- cmd/ssh-portal/serve.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmd/ssh-portal/serve.go b/cmd/ssh-portal/serve.go index 76125def..10826003 100644 --- a/cmd/ssh-portal/serve.go +++ b/cmd/ssh-portal/serve.go @@ -35,7 +35,11 @@ func (cmd *ServeCmd) Run(log *zap.Logger) error { ctx, stop := signal.NotifyContext(context.Background(), syscall.SIGTERM) defer stop() // get nats server connection - nc, err := nats.Connect(cmd.NATSServer) + nc, err := nats.Connect(cmd.NATSServer, + // exit on connection close + nats.ClosedHandler(func(_ *nats.Conn) { + stop() + })) if err != nil { return fmt.Errorf("couldn't connect to NATS server: %v", err) }