32 lines
607 B
Go
32 lines
607 B
Go
package ssh2
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"io"
|
|
|
|
"github.com/gliderlabs/ssh"
|
|
)
|
|
|
|
func (ssh2 *SSH2) setupHandler(server *ssh.Server) {
|
|
server.Handle(ssh2.handleConnection)
|
|
}
|
|
|
|
func (ssh2 *SSH2) handleConnection(session ssh.Session) {
|
|
slug, _ := getAnyPermission(session.Context())
|
|
banner := fmt.Sprintf(welcomeMessage, ssh2.Config.DefaultDomain, slug+"."+ssh2.Config.DefaultDomain)
|
|
|
|
io.WriteString(session, banner)
|
|
|
|
// wait until the user closes
|
|
buffer := bufio.NewReader(session)
|
|
for {
|
|
res, _, err := buffer.ReadRune()
|
|
if err != nil {
|
|
return
|
|
}
|
|
if res == etx || res == eot {
|
|
return
|
|
}
|
|
}
|
|
}
|