diff options
Diffstat (limited to 'vendor/golang.org/x/crypto/ssh/client.go')
| -rw-r--r-- | vendor/golang.org/x/crypto/ssh/client.go | 25 | 
1 files changed, 23 insertions, 2 deletions
| diff --git a/vendor/golang.org/x/crypto/ssh/client.go b/vendor/golang.org/x/crypto/ssh/client.go index a7e3263..ae6ca77 100644 --- a/vendor/golang.org/x/crypto/ssh/client.go +++ b/vendor/golang.org/x/crypto/ssh/client.go @@ -9,6 +9,7 @@ import (  	"errors"  	"fmt"  	"net" +	"os"  	"sync"  	"time"  ) @@ -18,6 +19,8 @@ import (  type Client struct {  	Conn +	handleForwardsOnce sync.Once // guards calling (*Client).handleForwards +  	forwards        forwardList // forwarded tcpip connections from the remote side  	mu              sync.Mutex  	channelHandlers map[string]chan NewChannel @@ -59,8 +62,6 @@ func NewClient(c Conn, chans <-chan NewChannel, reqs <-chan *Request) *Client {  		conn.Wait()  		conn.forwards.closeAll()  	}() -	go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-tcpip")) -	go conn.forwards.handleChannels(conn.HandleChannelOpen("forwarded-streamlocal@openssh.com"))  	return conn  } @@ -187,6 +188,10 @@ func Dial(network, addr string, config *ClientConfig) (*Client, error) {  // net.Conn underlying the the SSH connection.  type HostKeyCallback func(hostname string, remote net.Addr, key PublicKey) error +// BannerCallback is the function type used for treat the banner sent by +// the server. A BannerCallback receives the message sent by the remote server. +type BannerCallback func(message string) error +  // A ClientConfig structure is used to configure a Client. It must not be  // modified after having been passed to an SSH function.  type ClientConfig struct { @@ -209,6 +214,12 @@ type ClientConfig struct {  	// FixedHostKey can be used for simplistic host key checks.  	HostKeyCallback HostKeyCallback +	// BannerCallback is called during the SSH dance to display a custom +	// server's message. The client configuration can supply this callback to +	// handle it as wished. The function BannerDisplayStderr can be used for +	// simplistic display on Stderr. +	BannerCallback BannerCallback +  	// ClientVersion contains the version identification string that will  	// be used for the connection. If empty, a reasonable default is used.  	ClientVersion string @@ -255,3 +266,13 @@ func FixedHostKey(key PublicKey) HostKeyCallback {  	hk := &fixedHostKey{key}  	return hk.check  } + +// BannerDisplayStderr returns a function that can be used for +// ClientConfig.BannerCallback to display banners on os.Stderr. +func BannerDisplayStderr() BannerCallback { +	return func(banner string) error { +		_, err := os.Stderr.WriteString(banner) + +		return err +	} +} | 
