4
0
mirror of https://github.com/cwinfo/matterbridge.git synced 2025-06-26 08:39:24 +00:00

Update vendor shazow/ssh-chat (#1029)

This commit is contained in:
Wim
2020-03-08 23:55:09 +01:00
committed by GitHub
parent 9785edd263
commit 6b4b19194e
7 changed files with 35 additions and 7 deletions

View File

@ -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 {

View File

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

View File

@ -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"

View File

@ -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.

2
vendor/modules.txt vendored
View File

@ -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