mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #42284 from thaJeztah/update_containerd_console
vendor: github.com/containerd/console v1.0.2
This commit is contained in:
commit
cbe2f7a661
10 changed files with 195 additions and 10 deletions
|
@ -135,7 +135,7 @@ github.com/containerd/containerd 19ee068f93c91f7b9b2a858457f1
|
||||||
github.com/containerd/fifo 0724c46b320cf96bb172a0550c19a4b1fca4dacb
|
github.com/containerd/fifo 0724c46b320cf96bb172a0550c19a4b1fca4dacb
|
||||||
github.com/containerd/continuity efbc4488d8fe1bdc16bde3b2d2990d9b3a899165
|
github.com/containerd/continuity efbc4488d8fe1bdc16bde3b2d2990d9b3a899165
|
||||||
github.com/containerd/cgroups 0b889c03f102012f1d93a97ddd3ef71cd6f4f510
|
github.com/containerd/cgroups 0b889c03f102012f1d93a97ddd3ef71cd6f4f510
|
||||||
github.com/containerd/console 5d7e1412f07b502a01029ea20e20e0d2be31fa7c # v1.0.1
|
github.com/containerd/console 2f1e3d2b6afd18e8b2077816c711205a0b4d8769 # v1.0.2
|
||||||
github.com/containerd/go-runc 16b287bc67d069a60fa48db15f330b790b74365b
|
github.com/containerd/go-runc 16b287bc67d069a60fa48db15f330b790b74365b
|
||||||
github.com/containerd/typeurl cd3ce7159eae562a4f60ceff37dada11a939d247 # v1.0.1
|
github.com/containerd/typeurl cd3ce7159eae562a4f60ceff37dada11a939d247 # v1.0.1
|
||||||
github.com/containerd/ttrpc bfba540dc45464586c106b1f31c8547933c1eb41 # v1.0.2
|
github.com/containerd/ttrpc bfba540dc45464586c106b1f31c8547933c1eb41 # v1.0.2
|
||||||
|
|
4
vendor/github.com/containerd/console/README.md
generated
vendored
4
vendor/github.com/containerd/console/README.md
generated
vendored
|
@ -1,6 +1,8 @@
|
||||||
# console
|
# console
|
||||||
|
|
||||||
[![Build Status](https://travis-ci.org/containerd/console.svg?branch=master)](https://travis-ci.org/containerd/console)
|
[![PkgGoDev](https://pkg.go.dev/badge/github.com/containerd/console)](https://pkg.go.dev/github.com/containerd/console)
|
||||||
|
[![Build Status](https://github.com/containerd/console/workflows/CI/badge.svg)](https://github.com/containerd/console/actions?query=workflow%3ACI)
|
||||||
|
[![Go Report Card](https://goreportcard.com/badge/github.com/containerd/console)](https://goreportcard.com/report/github.com/containerd/console)
|
||||||
|
|
||||||
Golang package for dealing with consoles. Light on deps and a simple API.
|
Golang package for dealing with consoles. Light on deps and a simple API.
|
||||||
|
|
||||||
|
|
4
vendor/github.com/containerd/console/console_unix.go
generated
vendored
4
vendor/github.com/containerd/console/console_unix.go
generated
vendored
|
@ -19,8 +19,6 @@
|
||||||
package console
|
package console
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
|
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -28,7 +26,7 @@ import (
|
||||||
// The master is returned as the first console and a string
|
// The master is returned as the first console and a string
|
||||||
// with the path to the pty slave is returned as the second
|
// with the path to the pty slave is returned as the second
|
||||||
func NewPty() (Console, string, error) {
|
func NewPty() (Console, string, error) {
|
||||||
f, err := os.OpenFile("/dev/ptmx", unix.O_RDWR|unix.O_NOCTTY|unix.O_CLOEXEC, 0)
|
f, err := openpt()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, "", err
|
return nil, "", err
|
||||||
}
|
}
|
||||||
|
|
2
vendor/github.com/containerd/console/go.mod
generated
vendored
2
vendor/github.com/containerd/console/go.mod
generated
vendored
|
@ -4,5 +4,5 @@ go 1.13
|
||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/pkg/errors v0.9.1
|
github.com/pkg/errors v0.9.1
|
||||||
golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f
|
golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c
|
||||||
)
|
)
|
||||||
|
|
45
vendor/github.com/containerd/console/pty_freebsd_cgo.go
generated
vendored
Normal file
45
vendor/github.com/containerd/console/pty_freebsd_cgo.go
generated
vendored
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
// +build freebsd,cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
|
||||||
|
// openpt allocates a new pseudo-terminal and establishes a connection with its
|
||||||
|
// control device.
|
||||||
|
func openpt() (*os.File, error) {
|
||||||
|
fd, err := C.posix_openpt(C.O_RDWR)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("posix_openpt: %w", err)
|
||||||
|
}
|
||||||
|
if _, err := C.grantpt(fd); err != nil {
|
||||||
|
C.close(fd)
|
||||||
|
return nil, fmt.Errorf("grantpt: %w", err)
|
||||||
|
}
|
||||||
|
return os.NewFile(uintptr(fd), ""), nil
|
||||||
|
}
|
36
vendor/github.com/containerd/console/pty_freebsd_nocgo.go
generated
vendored
Normal file
36
vendor/github.com/containerd/console/pty_freebsd_nocgo.go
generated
vendored
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
// +build freebsd,!cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Implementing the functions below requires cgo support. Non-cgo stubs
|
||||||
|
// versions are defined below to enable cross-compilation of source code
|
||||||
|
// that depends on these functions, but the resultant cross-compiled
|
||||||
|
// binaries cannot actually be used. If the stub function(s) below are
|
||||||
|
// actually invoked they will display an error message and cause the
|
||||||
|
// calling process to exit.
|
||||||
|
//
|
||||||
|
|
||||||
|
func openpt() (*os.File, error) {
|
||||||
|
panic("openpt() support requires cgo.")
|
||||||
|
}
|
30
vendor/github.com/containerd/console/pty_unix.go
generated
vendored
Normal file
30
vendor/github.com/containerd/console/pty_unix.go
generated
vendored
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
// +build darwin linux netbsd openbsd solaris
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
|
)
|
||||||
|
|
||||||
|
// openpt allocates a new pseudo-terminal by opening the /dev/ptmx device
|
||||||
|
func openpt() (*os.File, error) {
|
||||||
|
return os.OpenFile("/dev/ptmx", unix.O_RDWR|unix.O_NOCTTY|unix.O_CLOEXEC, 0)
|
||||||
|
}
|
|
@ -1,3 +1,5 @@
|
||||||
|
// +build freebsd,cgo
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Copyright The containerd Authors.
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
@ -23,6 +25,12 @@ import (
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
/*
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
*/
|
||||||
|
import "C"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
cmdTcGet = unix.TIOCGETA
|
cmdTcGet = unix.TIOCGETA
|
||||||
cmdTcSet = unix.TIOCSETA
|
cmdTcSet = unix.TIOCSETA
|
||||||
|
@ -30,8 +38,12 @@ const (
|
||||||
|
|
||||||
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
||||||
// unlockpt should be called before opening the slave side of a pty.
|
// unlockpt should be called before opening the slave side of a pty.
|
||||||
// This does not exist on FreeBSD, it does not allocate controlling terminals on open
|
|
||||||
func unlockpt(f *os.File) error {
|
func unlockpt(f *os.File) error {
|
||||||
|
fd := C.int(f.Fd())
|
||||||
|
if _, err := C.unlockpt(fd); err != nil {
|
||||||
|
C.close(fd)
|
||||||
|
return fmt.Errorf("unlockpt: %w", err)
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
55
vendor/github.com/containerd/console/tc_freebsd_nocgo.go
generated
vendored
Normal file
55
vendor/github.com/containerd/console/tc_freebsd_nocgo.go
generated
vendored
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
// +build freebsd,!cgo
|
||||||
|
|
||||||
|
/*
|
||||||
|
Copyright The containerd Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package console
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
|
|
||||||
|
"golang.org/x/sys/unix"
|
||||||
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
cmdTcGet = unix.TIOCGETA
|
||||||
|
cmdTcSet = unix.TIOCSETA
|
||||||
|
)
|
||||||
|
|
||||||
|
//
|
||||||
|
// Implementing the functions below requires cgo support. Non-cgo stubs
|
||||||
|
// versions are defined below to enable cross-compilation of source code
|
||||||
|
// that depends on these functions, but the resultant cross-compiled
|
||||||
|
// binaries cannot actually be used. If the stub function(s) below are
|
||||||
|
// actually invoked they will display an error message and cause the
|
||||||
|
// calling process to exit.
|
||||||
|
//
|
||||||
|
|
||||||
|
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
||||||
|
// unlockpt should be called before opening the slave side of a pty.
|
||||||
|
func unlockpt(f *os.File) error {
|
||||||
|
panic("unlockpt() support requires cgo.")
|
||||||
|
}
|
||||||
|
|
||||||
|
// ptsname retrieves the name of the first available pts for the given master.
|
||||||
|
func ptsname(f *os.File) (string, error) {
|
||||||
|
n, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCGPTN)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
return fmt.Sprintf("/dev/pts/%d", n), nil
|
||||||
|
}
|
13
vendor/github.com/containerd/console/tc_linux.go
generated
vendored
13
vendor/github.com/containerd/console/tc_linux.go
generated
vendored
|
@ -19,6 +19,7 @@ package console
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"unsafe"
|
||||||
|
|
||||||
"golang.org/x/sys/unix"
|
"golang.org/x/sys/unix"
|
||||||
)
|
)
|
||||||
|
@ -31,13 +32,19 @@ const (
|
||||||
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
// unlockpt unlocks the slave pseudoterminal device corresponding to the master pseudoterminal referred to by f.
|
||||||
// unlockpt should be called before opening the slave side of a pty.
|
// unlockpt should be called before opening the slave side of a pty.
|
||||||
func unlockpt(f *os.File) error {
|
func unlockpt(f *os.File) error {
|
||||||
return unix.IoctlSetPointerInt(int(f.Fd()), unix.TIOCSPTLCK, 0)
|
var u int32
|
||||||
|
// XXX do not use unix.IoctlSetPointerInt here, see commit dbd69c59b81.
|
||||||
|
if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCSPTLCK, uintptr(unsafe.Pointer(&u))); err != 0 {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// ptsname retrieves the name of the first available pts for the given master.
|
// ptsname retrieves the name of the first available pts for the given master.
|
||||||
func ptsname(f *os.File) (string, error) {
|
func ptsname(f *os.File) (string, error) {
|
||||||
u, err := unix.IoctlGetInt(int(f.Fd()), unix.TIOCGPTN)
|
var u uint32
|
||||||
if err != nil {
|
// XXX do not use unix.IoctlGetInt here, see commit dbd69c59b81.
|
||||||
|
if _, _, err := unix.Syscall(unix.SYS_IOCTL, f.Fd(), unix.TIOCGPTN, uintptr(unsafe.Pointer(&u))); err != 0 {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("/dev/pts/%d", u), nil
|
return fmt.Sprintf("/dev/pts/%d", u), nil
|
||||||
|
|
Loading…
Add table
Reference in a new issue