1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
package tunnelssh
import "golang.org/x/crypto/ssh"
// SSHRequest represents an SSH request.
type SSHRequest interface {
Type() string
Reply(ok bool, payload []byte) error
}
type sshRequest struct {
request *ssh.Request
}
func (sr *sshRequest) Type() string {
return sr.request.Type
}
func (sr *sshRequest) Reply(ok bool, payload []byte) error {
return sr.request.Reply(ok, payload)
}
func (s *Session) convertRequests(reqs <-chan *ssh.Request) <-chan SSHRequest {
out := make(chan SSHRequest)
go func() {
for req := range reqs {
out <- &sshRequest{req}
}
close(out)
}()
return out
}
|