Преглед изворни кода

switch kr/pty to creack/pty v1.1.7

kr/pty was moved to creak/pty and the old location was
archived.

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Sebastiaan van Stijn пре 6 година
родитељ
комит
0595c01718
41 измењених фајлова са 247 додато и 16 уклоњено
  1. 1 1
      NOTICE
  2. 1 1
      integration-cli/docker_cli_attach_unix_test.go
  3. 1 1
      integration-cli/docker_cli_daemon_test.go
  4. 1 1
      integration-cli/docker_cli_events_unix_test.go
  5. 1 1
      integration-cli/docker_cli_exec_unix_test.go
  6. 1 1
      integration-cli/docker_cli_run_unix_test.go
  7. 1 1
      integration-cli/docker_cli_save_load_unix_test.go
  8. 1 1
      integration-cli/docker_cli_update_unix_test.go
  9. 1 1
      vendor.conf
  10. 0 0
      vendor/github.com/creack/pty/LICENSE
  11. 3 3
      vendor/github.com/creack/pty/README.md
  12. 0 0
      vendor/github.com/creack/pty/doc.go
  13. 1 1
      vendor/github.com/creack/pty/ioctl.go
  14. 0 0
      vendor/github.com/creack/pty/ioctl_bsd.go
  15. 30 0
      vendor/github.com/creack/pty/ioctl_solaris.go
  16. 0 0
      vendor/github.com/creack/pty/pty_darwin.go
  17. 0 0
      vendor/github.com/creack/pty/pty_dragonfly.go
  18. 0 0
      vendor/github.com/creack/pty/pty_freebsd.go
  19. 0 0
      vendor/github.com/creack/pty/pty_linux.go
  20. 0 0
      vendor/github.com/creack/pty/pty_openbsd.go
  21. 139 0
      vendor/github.com/creack/pty/pty_solaris.go
  22. 1 1
      vendor/github.com/creack/pty/pty_unsupported.go
  23. 1 0
      vendor/github.com/creack/pty/run.go
  24. 1 1
      vendor/github.com/creack/pty/util.go
  25. 51 0
      vendor/github.com/creack/pty/util_solaris.go
  26. 0 0
      vendor/github.com/creack/pty/ztypes_386.go
  27. 0 0
      vendor/github.com/creack/pty/ztypes_amd64.go
  28. 0 0
      vendor/github.com/creack/pty/ztypes_arm.go
  29. 0 0
      vendor/github.com/creack/pty/ztypes_arm64.go
  30. 0 0
      vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go
  31. 0 0
      vendor/github.com/creack/pty/ztypes_freebsd_386.go
  32. 0 0
      vendor/github.com/creack/pty/ztypes_freebsd_amd64.go
  33. 0 0
      vendor/github.com/creack/pty/ztypes_freebsd_arm.go
  34. 0 0
      vendor/github.com/creack/pty/ztypes_mipsx.go
  35. 0 0
      vendor/github.com/creack/pty/ztypes_openbsd_386.go
  36. 0 0
      vendor/github.com/creack/pty/ztypes_openbsd_amd64.go
  37. 0 0
      vendor/github.com/creack/pty/ztypes_ppc64.go
  38. 0 0
      vendor/github.com/creack/pty/ztypes_ppc64le.go
  39. 11 0
      vendor/github.com/creack/pty/ztypes_riscvx.go
  40. 0 0
      vendor/github.com/creack/pty/ztypes_s390x.go
  41. 0 1
      vendor/github.com/kr/pty/go.mod

+ 1 - 1
NOTICE

@@ -3,7 +3,7 @@ Copyright 2012-2017 Docker, Inc.
 
 This product includes software developed at Docker, Inc. (https://www.docker.com).
 
-This product contains software (https://github.com/kr/pty) developed
+This product contains software (https://github.com/creack/pty) developed
 by Keith Rarick, licensed under the MIT License.
 
 The following is courtesy of our legal counsel:

+ 1 - 1
integration-cli/docker_cli_attach_unix_test.go

@@ -9,8 +9,8 @@ import (
 	"strings"
 	"time"
 
+	"github.com/creack/pty"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"gotest.tools/assert"
 )
 

+ 1 - 1
integration-cli/docker_cli_daemon_test.go

@@ -24,6 +24,7 @@ import (
 	"time"
 
 	"github.com/cloudflare/cfssl/helpers"
+	"github.com/creack/pty"
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/integration-cli/checker"
 	"github.com/docker/docker/integration-cli/cli"
@@ -36,7 +37,6 @@ import (
 	"github.com/docker/libnetwork/iptables"
 	"github.com/docker/libtrust"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"golang.org/x/sys/unix"
 	"gotest.tools/assert"
 	"gotest.tools/icmd"

+ 1 - 1
integration-cli/docker_cli_events_unix_test.go

@@ -13,9 +13,9 @@ import (
 	"time"
 	"unicode"
 
+	"github.com/creack/pty"
 	"github.com/docker/docker/integration-cli/cli/build"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"golang.org/x/sys/unix"
 	"gotest.tools/assert"
 )

+ 1 - 1
integration-cli/docker_cli_exec_unix_test.go

@@ -9,8 +9,8 @@ import (
 	"strings"
 	"time"
 
+	"github.com/creack/pty"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"gotest.tools/assert"
 )
 

+ 1 - 1
integration-cli/docker_cli_run_unix_test.go

@@ -17,6 +17,7 @@ import (
 	"syscall"
 	"time"
 
+	"github.com/creack/pty"
 	"github.com/docker/docker/client"
 	"github.com/docker/docker/integration-cli/checker"
 	"github.com/docker/docker/integration-cli/cli"
@@ -26,7 +27,6 @@ import (
 	"github.com/docker/docker/pkg/parsers"
 	"github.com/docker/docker/pkg/sysinfo"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"gotest.tools/assert"
 	"gotest.tools/icmd"
 )

+ 1 - 1
integration-cli/docker_cli_save_load_unix_test.go

@@ -11,9 +11,9 @@ import (
 	"strings"
 	"time"
 
+	"github.com/creack/pty"
 	"github.com/docker/docker/integration-cli/cli/build"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"gotest.tools/assert"
 	"gotest.tools/icmd"
 )

+ 1 - 1
integration-cli/docker_cli_update_unix_test.go

@@ -10,12 +10,12 @@ import (
 	"strings"
 	"time"
 
+	"github.com/creack/pty"
 	"github.com/docker/docker/api/types"
 	"github.com/docker/docker/client"
 	"github.com/docker/docker/internal/test/request"
 	"github.com/docker/docker/pkg/parsers/kernel"
 	"github.com/go-check/check"
-	"github.com/kr/pty"
 	"gotest.tools/assert"
 )
 

+ 1 - 1
vendor.conf

@@ -8,8 +8,8 @@ github.com/google/uuid                              0cd6bf5da1e1c83f8b45653022c7
 github.com/gorilla/mux                              ed099d42384823742bba0bf9a72b53b55c9e2e38 # v1.7.2
 github.com/Microsoft/opengcs                        a10967154e143a36014584a6f664344e3bb0aa64
 
+github.com/creack/pty                               2769f65a3a94eb8f876f44a0459d24ae7ad2e488 # v1.1.7
 github.com/konsorten/go-windows-terminal-sequences  f55edac94c9bbba5d6182a4be46d86a2c9b5b50e # v1.0.2
-github.com/kr/pty                                   521317be5ebc228a0f0ede099fa2a0b5ece22e49 # v1.1.4
 github.com/mattn/go-shellwords                      a72fbe27a1b0ed0df2f02754945044ce1456608b # v1.0.5
 github.com/sirupsen/logrus                          8bdbc7bcc01dcbb8ec23dc8a28e332258d25251f # v1.4.1
 github.com/tchap/go-patricia                        a7f0089c6f496e8e70402f61733606daa326cac5 # v2.3.0

+ 0 - 0
vendor/github.com/kr/pty/License → vendor/github.com/creack/pty/LICENSE


+ 3 - 3
vendor/github.com/kr/pty/README.md → vendor/github.com/creack/pty/README.md

@@ -4,7 +4,7 @@ Pty is a Go package for using unix pseudo-terminals.
 
 ## Install
 
-    go get github.com/kr/pty
+    go get github.com/creack/pty
 
 ## Example
 
@@ -14,7 +14,7 @@ Pty is a Go package for using unix pseudo-terminals.
 package main
 
 import (
-	"github.com/kr/pty"
+	"github.com/creack/pty"
 	"io"
 	"os"
 	"os/exec"
@@ -50,7 +50,7 @@ import (
         "os/signal"
         "syscall"
 
-        "github.com/kr/pty"
+        "github.com/creack/pty"
         "golang.org/x/crypto/ssh/terminal"
 )
 

+ 0 - 0
vendor/github.com/kr/pty/doc.go → vendor/github.com/creack/pty/doc.go


+ 1 - 1
vendor/github.com/kr/pty/ioctl.go → vendor/github.com/creack/pty/ioctl.go

@@ -1,4 +1,4 @@
-// +build !windows
+// +build !windows,!solaris
 
 package pty
 

+ 0 - 0
vendor/github.com/kr/pty/ioctl_bsd.go → vendor/github.com/creack/pty/ioctl_bsd.go


+ 30 - 0
vendor/github.com/creack/pty/ioctl_solaris.go

@@ -0,0 +1,30 @@
+package pty
+
+import (
+	"golang.org/x/sys/unix"
+	"unsafe"
+)
+
+const (
+	// see /usr/include/sys/stropts.h
+	I_PUSH  = uintptr((int32('S')<<8 | 002))
+	I_STR   = uintptr((int32('S')<<8 | 010))
+	I_FIND  = uintptr((int32('S')<<8 | 013))
+	// see /usr/include/sys/ptms.h
+	ISPTM   = (int32('P') << 8) | 1
+	UNLKPT  = (int32('P') << 8) | 2
+	PTSSTTY = (int32('P') << 8) | 3
+	ZONEPT  = (int32('P') << 8) | 4
+	OWNERPT = (int32('P') << 8) | 5
+)
+
+type strioctl struct {
+	ic_cmd    int32
+	ic_timout int32
+	ic_len    int32
+	ic_dp     unsafe.Pointer
+}
+
+func ioctl(fd, cmd, ptr uintptr) error {
+	return unix.IoctlSetInt(int(fd), uint(cmd), int(ptr))
+}

+ 0 - 0
vendor/github.com/kr/pty/pty_darwin.go → vendor/github.com/creack/pty/pty_darwin.go


+ 0 - 0
vendor/github.com/kr/pty/pty_dragonfly.go → vendor/github.com/creack/pty/pty_dragonfly.go


+ 0 - 0
vendor/github.com/kr/pty/pty_freebsd.go → vendor/github.com/creack/pty/pty_freebsd.go


+ 0 - 0
vendor/github.com/kr/pty/pty_linux.go → vendor/github.com/creack/pty/pty_linux.go


+ 0 - 0
vendor/github.com/kr/pty/pty_openbsd.go → vendor/github.com/creack/pty/pty_openbsd.go


+ 139 - 0
vendor/github.com/creack/pty/pty_solaris.go

@@ -0,0 +1,139 @@
+package pty
+
+/* based on:
+http://src.illumos.org/source/xref/illumos-gate/usr/src/lib/libc/port/gen/pt.c
+*/
+
+import (
+	"errors"
+	"golang.org/x/sys/unix"
+	"os"
+	"strconv"
+	"syscall"
+	"unsafe"
+)
+
+const NODEV = ^uint64(0)
+
+func open() (pty, tty *os.File, err error) {
+	masterfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|unix.O_NOCTTY, 0)
+	//masterfd, err := syscall.Open("/dev/ptmx", syscall.O_RDWR|syscall.O_CLOEXEC|unix.O_NOCTTY, 0)
+	if err != nil {
+		return nil, nil, err
+	}
+	p := os.NewFile(uintptr(masterfd), "/dev/ptmx")
+
+	sname, err := ptsname(p)
+	if err != nil {
+		return nil, nil, err
+	}
+
+	err = grantpt(p)
+	if err != nil {
+		return nil, nil, err
+	}
+
+	err = unlockpt(p)
+	if err != nil {
+		return nil, nil, err
+	}
+
+	slavefd, err := syscall.Open(sname, os.O_RDWR|unix.O_NOCTTY, 0)
+	if err != nil {
+		return nil, nil, err
+	}
+	t := os.NewFile(uintptr(slavefd), sname)
+
+	// pushing terminal driver STREAMS modules as per pts(7)
+	for _, mod := range([]string{"ptem", "ldterm", "ttcompat"}) {
+		err = streams_push(t, mod)
+		if err != nil {
+			return nil, nil, err
+		}
+	}
+	
+	return p, t, nil
+}
+
+func minor(x uint64) uint64 {
+	return x & 0377
+}
+
+func ptsdev(fd uintptr) uint64 {
+	istr := strioctl{ISPTM, 0, 0, nil}
+	err := ioctl(fd, I_STR, uintptr(unsafe.Pointer(&istr)))
+	if err != nil {
+		return NODEV
+	}
+	var status unix.Stat_t
+	err = unix.Fstat(int(fd), &status)
+	if err != nil {
+		return NODEV
+	}
+	return uint64(minor(status.Rdev))
+}
+
+func ptsname(f *os.File) (string, error) {
+	dev := ptsdev(f.Fd())
+	if dev == NODEV {
+		return "", errors.New("not a master pty")
+	}
+	fn := "/dev/pts/" + strconv.FormatInt(int64(dev), 10)
+	// access(2) creates the slave device (if the pty exists)
+	// F_OK == 0 (unistd.h)
+	err := unix.Access(fn, 0)
+	if err != nil {
+		return "", err
+	}
+	return fn, nil
+}
+
+type pt_own struct {
+	pto_ruid int32
+	pto_rgid int32
+}
+
+func grantpt(f *os.File) error {
+	if ptsdev(f.Fd()) == NODEV {
+		return errors.New("not a master pty")
+	}
+	var pto pt_own
+	pto.pto_ruid = int32(os.Getuid())
+	// XXX should first attempt to get gid of DEFAULT_TTY_GROUP="tty"
+	pto.pto_rgid = int32(os.Getgid())
+	var istr strioctl
+	istr.ic_cmd = OWNERPT
+	istr.ic_timout = 0
+	istr.ic_len = int32(unsafe.Sizeof(istr))
+	istr.ic_dp = unsafe.Pointer(&pto)
+	err := ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr)))
+	if err != nil {
+		return errors.New("access denied")
+	}
+	return nil
+}
+
+func unlockpt(f *os.File) error {
+	istr := strioctl{UNLKPT, 0, 0, nil}
+	return ioctl(f.Fd(), I_STR, uintptr(unsafe.Pointer(&istr)))
+}
+
+// push STREAMS modules if not already done so
+func streams_push(f *os.File, mod string) error {
+	var err error
+	buf := []byte(mod)
+	// XXX I_FIND is not returning an error when the module
+	// is already pushed even though truss reports a return
+	// value of 1. A bug in the Go Solaris syscall interface?
+	// XXX without this we are at risk of the issue
+	// https://www.illumos.org/issues/9042
+	// but since we are not using libc or XPG4.2, we should not be
+	// double-pushing modules
+	
+	err = ioctl(f.Fd(), I_FIND, uintptr(unsafe.Pointer(&buf[0])))
+	if err != nil {
+		return nil
+	}
+	err = ioctl(f.Fd(), I_PUSH, uintptr(unsafe.Pointer(&buf[0])))
+	return err
+}

+ 1 - 1
vendor/github.com/kr/pty/pty_unsupported.go → vendor/github.com/creack/pty/pty_unsupported.go

@@ -1,4 +1,4 @@
-// +build !linux,!darwin,!freebsd,!dragonfly,!openbsd
+// +build !linux,!darwin,!freebsd,!dragonfly,!openbsd,!solaris
 
 package pty
 

+ 1 - 0
vendor/github.com/kr/pty/run.go → vendor/github.com/creack/pty/run.go

@@ -47,6 +47,7 @@ func StartWithSize(c *exec.Cmd, sz *Winsize) (pty *os.File, err error) {
 	}
 	c.SysProcAttr.Setctty = true
 	c.SysProcAttr.Setsid = true
+	c.SysProcAttr.Ctty = int(tty.Fd())
 	err = c.Start()
 	if err != nil {
 		pty.Close()

+ 1 - 1
vendor/github.com/kr/pty/util.go → vendor/github.com/creack/pty/util.go

@@ -1,4 +1,4 @@
-// +build !windows
+// +build !windows,!solaris
 
 package pty
 

+ 51 - 0
vendor/github.com/creack/pty/util_solaris.go

@@ -0,0 +1,51 @@
+//
+
+package pty
+
+import (
+	"os"
+	"golang.org/x/sys/unix"
+)
+
+const (
+	TIOCGWINSZ = 21608 // 'T' << 8 | 104
+	TIOCSWINSZ = 21607 // 'T' << 8 | 103
+)
+
+// Winsize describes the terminal size.
+type Winsize struct {
+	Rows uint16 // ws_row: Number of rows (in cells)
+	Cols uint16 // ws_col: Number of columns (in cells)
+	X    uint16 // ws_xpixel: Width in pixels
+	Y    uint16 // ws_ypixel: Height in pixels
+}
+
+// GetsizeFull returns the full terminal size description.
+func GetsizeFull(t *os.File) (size *Winsize, err error) {
+	var wsz *unix.Winsize
+	wsz, err = unix.IoctlGetWinsize(int(t.Fd()), TIOCGWINSZ)
+
+	if err != nil {
+		return nil, err
+	} else {
+		return &Winsize{wsz.Row, wsz.Col, wsz.Xpixel, wsz.Ypixel}, nil
+	}
+}
+
+// Get Windows Size
+func Getsize(t *os.File) (rows, cols int, err error) {
+	var wsz *unix.Winsize
+	wsz, err = unix.IoctlGetWinsize(int(t.Fd()), TIOCGWINSZ)
+
+	if err != nil {
+		return 80, 25, err
+	} else {
+		return int(wsz.Row), int(wsz.Col), nil
+	}
+}
+
+// Setsize resizes t to s.
+func Setsize(t *os.File, ws *Winsize) error {
+	wsz := unix.Winsize{ws.Rows, ws.Cols, ws.X, ws.Y}
+	return unix.IoctlSetWinsize(int(t.Fd()), TIOCSWINSZ, &wsz)
+}

+ 0 - 0
vendor/github.com/kr/pty/ztypes_386.go → vendor/github.com/creack/pty/ztypes_386.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_amd64.go → vendor/github.com/creack/pty/ztypes_amd64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_arm.go → vendor/github.com/creack/pty/ztypes_arm.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_arm64.go → vendor/github.com/creack/pty/ztypes_arm64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_dragonfly_amd64.go → vendor/github.com/creack/pty/ztypes_dragonfly_amd64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_freebsd_386.go → vendor/github.com/creack/pty/ztypes_freebsd_386.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_freebsd_amd64.go → vendor/github.com/creack/pty/ztypes_freebsd_amd64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_freebsd_arm.go → vendor/github.com/creack/pty/ztypes_freebsd_arm.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_mipsx.go → vendor/github.com/creack/pty/ztypes_mipsx.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_openbsd_386.go → vendor/github.com/creack/pty/ztypes_openbsd_386.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_openbsd_amd64.go → vendor/github.com/creack/pty/ztypes_openbsd_amd64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_ppc64.go → vendor/github.com/creack/pty/ztypes_ppc64.go


+ 0 - 0
vendor/github.com/kr/pty/ztypes_ppc64le.go → vendor/github.com/creack/pty/ztypes_ppc64le.go


+ 11 - 0
vendor/github.com/creack/pty/ztypes_riscvx.go

@@ -0,0 +1,11 @@
+// Code generated by cmd/cgo -godefs; DO NOT EDIT.
+// cgo -godefs types.go
+
+// +build riscv riscv64
+
+package pty
+
+type (
+	_C_int  int32
+	_C_uint uint32
+)

+ 0 - 0
vendor/github.com/kr/pty/ztypes_s390x.go → vendor/github.com/creack/pty/ztypes_s390x.go


+ 0 - 1
vendor/github.com/kr/pty/go.mod

@@ -1 +0,0 @@
-module github.com/kr/pty