in src/sessionmanagerplugin/session/portsession/basicportforwarding.go [167:184]
func (p *BasicPortForwarding) handleControlSignals(log log.T) {
c := make(chan os.Signal, 1)
signal.Notify(c, sessionutil.ControlSignals...)
go func() {
<-c
fmt.Println("Terminate signal received, exiting.")
if version.DoesAgentSupportTerminateSessionFlag(log, p.session.DataChannel.GetAgentVersion()) {
if err := p.session.DataChannel.SendFlag(log, message.TerminateSession); err != nil {
log.Errorf("Failed to send TerminateSession flag: %v", err)
}
fmt.Fprintf(os.Stdout, "\n\nExiting session with sessionId: %s.\n\n", p.sessionId)
p.Stop()
} else {
p.session.TerminateSession(log)
}
}()
}