aboutsummaryrefslogtreecommitdiff
path: root/ssh/example_test.go
diff options
context:
space:
mode:
authorWillem van der Schyff <willemvds@gmail.com>2012-10-21 16:16:55 +1100
committerDave Cheney <dave@cheney.net>2012-10-21 16:16:55 +1100
commit2fccde5d00389df8edd4f660470ac8f105c6280e (patch)
tree9681ea749be6fb488ee0b4d632db425abe86a79d /ssh/example_test.go
parentc9c0e06eed439a60df0ef7aa13c0b97e19cdd3a7 (diff)
downloadgo-x-crypto-2fccde5d00389df8edd4f660470ac8f105c6280e.tar.xz
go.crypto/ssh: add terminal modes to ssh.RequestPty()
R=dave, agl CC=golang-dev https://golang.org/cl/6655046
Diffstat (limited to 'ssh/example_test.go')
-rw-r--r--ssh/example_test.go36
1 files changed, 36 insertions, 0 deletions
diff --git a/ssh/example_test.go b/ssh/example_test.go
index c8a2de8..54f3610 100644
--- a/ssh/example_test.go
+++ b/ssh/example_test.go
@@ -149,3 +149,39 @@ func ExampleClientConn_Listen() {
fmt.Fprintf(resp, "Hello world!\n")
}))
}
+
+func ExampleSession_RequestPty() {
+ // Create client config
+ config := &ClientConfig{
+ User: "username",
+ Auth: []ClientAuth{
+ ClientAuthPassword(password("password")),
+ },
+ }
+ // Connect to ssh server
+ conn, err := Dial("tcp", "localhost:22", config)
+ if err != nil {
+ log.Fatalf("unable to connect: %s", err)
+ }
+ defer conn.Close()
+ // Create a session
+ session, err := conn.NewSession()
+ if err != nil {
+ log.Fatalf("unable to create session: %s", err)
+ }
+ defer session.Close()
+ // Set up terminal modes
+ modes := TerminalModes{
+ ECHO: 0, // disable echoing
+ TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud
+ TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud
+ }
+ // Request pseudo terminal
+ if err := session.RequestPty("xterm", 80, 40, modes); err != nil {
+ log.Fatalf("request for pseudo terminal failed: %s", err)
+ }
+ // Start remote shell
+ if err := session.Shell(); err != nil {
+ log.Fatalf("failed to start shell: %s", err)
+ }
+}