func()

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)
		}
	}()
}