terminal: when closing term, pass status to closing 11/16111/4
authorClément Bénier <clement.benier@iot.bzh>
Tue, 14 Aug 2018 09:37:32 +0000 (11:37 +0200)
committerSebastien Douheret <sebastien.douheret@iot.bzh>
Mon, 20 Aug 2018 13:33:39 +0000 (13:33 +0000)
status in return TerminalConfig is still opened when a term is closed

Change-Id: Idacb67607ca32bfe35738d86e784512cb7758b02
Signed-off-by: Clément Bénier <clement.benier@iot.bzh>
lib/xdsserver/terminal-ssh.go
lib/xsapiv1/targets.go

index c275173..fcef4f9 100644 (file)
@@ -223,13 +223,15 @@ func (t *TermSSH) Open(sock *socketio.Socket, sessID string) (*xsapiv1.TerminalC
 
 // Close a terminal
 func (t *TermSSH) Close() (*xsapiv1.TerminalConfig, error) {
-       // nothing to do when not open
-       if t.termCfg.Status != xsapiv1.StatusTermOpen {
+       // nothing to do when not open or closing
+    if ! (t.termCfg.Status == xsapiv1.StatusTermOpen || t.termCfg.Status == xsapiv1.StatusTermClosing) {
                return &t.termCfg, nil
        }
 
        err := t.sshWS.Signal("SIGTERM")
 
+       t.termCfg.Status = xsapiv1.StatusTermClosing
+
        return &t.termCfg, err
 }
 
index 793724a..bae36f9 100644 (file)
@@ -65,6 +65,8 @@ const (
        StatusTermOpen = "Open"
        // StatusTermClose Close state
        StatusTermClose = "Close"
+       // StatusTermClosing Closing state
+       StatusTermClosing = "Closing"
 
        // TerminalInEvent Event send in WS when characters are sent (stdin)
        TerminalInEvent = "term:input"