diff --git a/session/session.go b/session/session.go index eb4cdbe1adbd5a434cec0723e90d41d7bc25b3fc..2ea3f92bf0cc830a4b97d63e624b18d98d4a4773 100644 --- a/session/session.go +++ b/session/session.go @@ -56,8 +56,6 @@ func NewSession(logger *logrus.Entry) (*Session, error) { log: logger, } - sess.setMux() - return sess, nil } @@ -84,14 +82,6 @@ func generateToken() (string, error) { return token, nil } -func (s *Session) setMux() { - s.Lock() - defer s.Unlock() - - s.mux = http.NewServeMux() - s.mux.HandleFunc(s.Endpoint+"/exec", s.execHandler) -} - func (s *Session) execHandler(w http.ResponseWriter, r *http.Request) { logger := s.log.WithField("uri", r.RequestURI) logger.Debug("Exec terminal session request") @@ -174,10 +164,17 @@ func (s *Session) closeTerminalConn(conn terminal.Conn) { func (s *Session) SetInteractiveTerminal(interactiveTerminal terminal.InteractiveTerminal) { s.Lock() defer s.Unlock() + s.interactiveTerminal = interactiveTerminal + + s.mux = http.NewServeMux() + s.mux.HandleFunc(s.Endpoint+"/exec", s.execHandler) } func (s *Session) Mux() *http.ServeMux { + s.Lock() + defer s.Unlock() + return s.mux }