From 6b4b19194ec40c79569bc692a6557e78f338ded9 Mon Sep 17 00:00:00 2001
From: Wim <wim@42.be>
Date: Sun, 8 Mar 2020 23:55:09 +0100
Subject: [PATCH] Update vendor shazow/ssh-chat (#1029)

---
 go.mod                                        |  2 +-
 go.sum                                        |  5 +++--
 vendor/github.com/shazow/ssh-chat/sshd/net.go |  7 +++++++
 .../shazow/ssh-chat/sshd/terminal/terminal.go | 19 +++++++++++++++++++
 .../shazow/ssh-chat/sshd/terminal/util.go     |  2 +-
 .../ssh-chat/sshd/terminal/util_solaris.go    |  5 +++--
 vendor/modules.txt                            |  2 +-
 7 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/go.mod b/go.mod
index fcab0c09..9688dbde 100644
--- a/go.mod
+++ b/go.mod
@@ -44,7 +44,7 @@ require (
 	github.com/rs/xid v1.2.1
 	github.com/russross/blackfriday v1.5.2
 	github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca
-	github.com/shazow/ssh-chat v1.8.2
+	github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98
 	github.com/sirupsen/logrus v1.4.2
 	github.com/slack-go/slack v0.6.3-0.20200228121756-f56d616d5901
 	github.com/spf13/viper v1.6.1
diff --git a/go.sum b/go.sum
index 30fc7d45..2bf88059 100644
--- a/go.sum
+++ b/go.sum
@@ -21,6 +21,7 @@ github.com/Rhymen/go-whatsapp/examples/sendTextMessages v0.0.0-20190325075644-cc
 github.com/StackExchange/wmi v0.0.0-20170410192909-ea383cf3ba6e/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg=
 github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
 github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58 h1:MkpmYfld/S8kXqTYI68DfL8/hHXjHogL120Dy00TIxc=
 github.com/alexcesaro/log v0.0.0-20150915221235-61e686294e58/go.mod h1:YNfsMyWSs+h+PaYkxGeMVmVCX75Zj/pqdjbu12ciCYE=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
 github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
@@ -202,8 +203,8 @@ github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca h1:NugYot0LIVPxT
 github.com/saintfish/chardet v0.0.0-20120816061221-3af4cd4741ca/go.mod h1:uugorj2VCxiV1x+LzaIdVa9b4S4qGAcH6cbhh4qVxOU=
 github.com/shazow/rateio v0.0.0-20150116013248-e8e00881e5c1 h1:Lx3BlDGFElJt4u/zKc9A3BuGYbQAGlEFyPuUA3jeMD0=
 github.com/shazow/rateio v0.0.0-20150116013248-e8e00881e5c1/go.mod h1:vt2jWY/3Qw1bIzle5thrJWucsLuuX9iUNnp20CqCciI=
-github.com/shazow/ssh-chat v1.8.2 h1:MMso9eWfCnPBelRsusYxKcRBUwHIPEQkR9WrO89II38=
-github.com/shazow/ssh-chat v1.8.2/go.mod h1:cXTZK/D1zujEwB0y8DIT1GX8rIKjyLDYeWd+jitPX84=
+github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98 h1:sN07ff+PSRsUNhpSod4uGKAQ+Nc0FXsBPG9FmYMNg4w=
+github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98/go.mod h1:xkTgfD+WP+KR4HuG76oal25BBEeu5kJyi2EOsgiu/4Q=
 github.com/shirou/gopsutil v0.0.0-20180427012116-c95755e4bcd7/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/shirou/w32 v0.0.0-20160930032740-bb4de0191aa4/go.mod h1:qsXQc7+bwAM3Q1u/4XEfrquwF8Lw7D7y5cD8CuHnfIc=
 github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
diff --git a/vendor/github.com/shazow/ssh-chat/sshd/net.go b/vendor/github.com/shazow/ssh-chat/sshd/net.go
index 8305696b..678454ba 100644
--- a/vendor/github.com/shazow/ssh-chat/sshd/net.go
+++ b/vendor/github.com/shazow/ssh-chat/sshd/net.go
@@ -2,6 +2,7 @@ package sshd
 
 import (
 	"net"
+	"time"
 
 	"github.com/shazow/rateio"
 	"golang.org/x/crypto/ssh"
@@ -32,6 +33,12 @@ func (l *SSHListener) handleConn(conn net.Conn) (*Terminal, error) {
 		conn = ReadLimitConn(conn, l.RateLimit())
 	}
 
+	// If the connection doesn't write anything back for too long before we get
+	// a valid session, it should be dropped.
+	var handleTimeout = 20 * time.Second
+	conn.SetReadDeadline(time.Now().Add(handleTimeout))
+	defer conn.SetReadDeadline(time.Time{})
+
 	// Upgrade TCP connection to SSH connection
 	sshConn, channels, requests, err := ssh.NewServerConn(conn, l.config)
 	if err != nil {
diff --git a/vendor/github.com/shazow/ssh-chat/sshd/terminal/terminal.go b/vendor/github.com/shazow/ssh-chat/sshd/terminal/terminal.go
index 690937e6..d6650bb1 100644
--- a/vendor/github.com/shazow/ssh-chat/sshd/terminal/terminal.go
+++ b/vendor/github.com/shazow/ssh-chat/sshd/terminal/terminal.go
@@ -129,6 +129,8 @@ const (
 	keyRight
 	keyAltLeft
 	keyAltRight
+	keyAltF
+	keyAltB
 	keyHome
 	keyEnd
 	keyDeleteWord
@@ -155,8 +157,12 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
 		switch b[0] {
 		case 1: // ^A
 			return keyHome, b[1:]
+		case 2: // ^B
+			return keyLeft, b[1:]
 		case 5: // ^E
 			return keyEnd, b[1:]
+		case 6: // ^F
+			return keyRight, b[1:]
 		case 8: // ^H
 			return keyBackspace, b[1:]
 		case 11: // ^K
@@ -206,6 +212,15 @@ func bytesToKey(b []byte, pasteActive bool) (rune, []byte) {
 		}
 	}
 
+	if !pasteActive && len(b) >= 2 && b[0] == keyEscape {
+		switch b[1] {
+		case 'f':
+			return keyAltF, b[2:]
+		case 'b':
+			return keyAltB, b[2:]
+		}
+	}
+
 	if !pasteActive && len(b) >= 6 && bytes.Equal(b[:6], pasteStart) {
 		return keyPasteStart, b[6:]
 	}
@@ -467,10 +482,14 @@ func (t *Terminal) handleKey(key rune) (line string, ok bool) {
 			return
 		}
 		t.eraseNPreviousChars(1)
+	case keyAltB:
+		fallthrough
 	case keyAltLeft:
 		// move left by a word.
 		t.pos -= t.countToLeftWord()
 		t.moveCursorToPos(t.pos)
+	case keyAltF:
+		fallthrough
 	case keyAltRight:
 		// move right by a word.
 		t.pos += t.countToRightWord()
diff --git a/vendor/github.com/shazow/ssh-chat/sshd/terminal/util.go b/vendor/github.com/shazow/ssh-chat/sshd/terminal/util.go
index 39110408..e553f7e8 100644
--- a/vendor/github.com/shazow/ssh-chat/sshd/terminal/util.go
+++ b/vendor/github.com/shazow/ssh-chat/sshd/terminal/util.go
@@ -14,7 +14,7 @@
 // 	        panic(err)
 // 	}
 // 	defer terminal.Restore(0, oldState)
-package terminal // import "golang.org/x/crypto/ssh/terminal"
+package terminal
 
 import (
 	"golang.org/x/sys/unix"
diff --git a/vendor/github.com/shazow/ssh-chat/sshd/terminal/util_solaris.go b/vendor/github.com/shazow/ssh-chat/sshd/terminal/util_solaris.go
index 3d5f06a9..7b6b6fb3 100644
--- a/vendor/github.com/shazow/ssh-chat/sshd/terminal/util_solaris.go
+++ b/vendor/github.com/shazow/ssh-chat/sshd/terminal/util_solaris.go
@@ -4,12 +4,13 @@
 
 // +build solaris
 
-package terminal // import "golang.org/x/crypto/ssh/terminal"
+package terminal
 
 import (
-	"golang.org/x/sys/unix"
 	"io"
 	"syscall"
+
+	"golang.org/x/sys/unix"
 )
 
 // State contains the state of a terminal.
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 028eb972..35ced388 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -162,7 +162,7 @@ github.com/russross/blackfriday
 github.com/saintfish/chardet
 # github.com/shazow/rateio v0.0.0-20150116013248-e8e00881e5c1
 github.com/shazow/rateio
-# github.com/shazow/ssh-chat v1.8.2
+# github.com/shazow/ssh-chat v1.8.3-0.20200308224626-80ddf1f43a98
 github.com/shazow/ssh-chat/internal/sanitize
 github.com/shazow/ssh-chat/sshd
 github.com/shazow/ssh-chat/sshd/terminal