| ... | ... |
@@ -1414,7 +1414,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in *os.Fi |
| 1414 | 1414 |
return err |
| 1415 | 1415 |
}) |
| 1416 | 1416 |
|
| 1417 |
- if in != nil && setRawTerminal && term.IsTerminal(int(in.Fd())) && os.Getenv("NORAW") == "" {
|
|
| 1417 |
+ if in != nil && setRawTerminal && term.IsTerminal(in.Fd()) && os.Getenv("NORAW") == "" {
|
|
| 1418 | 1418 |
if oldState, err := term.SetRawTerminal(); err != nil {
|
| 1419 | 1419 |
return err |
| 1420 | 1420 |
} else {
|
| ... | ... |
@@ -1433,7 +1433,7 @@ func (cli *DockerCli) hijack(method, path string, setRawTerminal bool, in *os.Fi |
| 1433 | 1433 |
return err |
| 1434 | 1434 |
} |
| 1435 | 1435 |
|
| 1436 |
- if !term.IsTerminal(int(os.Stdin.Fd())) {
|
|
| 1436 |
+ if !term.IsTerminal(os.Stdin.Fd()) {
|
|
| 1437 | 1437 |
if err := <-sendStdin; err != nil {
|
| 1438 | 1438 |
return err |
| 1439 | 1439 |
} |
| ... | ... |
@@ -128,21 +128,21 @@ func SetWinsize(fd uintptr, ws *Winsize) error {
|
| 128 | 128 |
} |
| 129 | 129 |
|
| 130 | 130 |
// IsTerminal returns true if the given file descriptor is a terminal. |
| 131 |
-func IsTerminal(fd int) bool {
|
|
| 131 |
+func IsTerminal(fd uintptr) bool {
|
|
| 132 | 132 |
var termios Termios |
| 133 |
- _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(getTermios), uintptr(unsafe.Pointer(&termios))) |
|
| 133 |
+ _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(getTermios), uintptr(unsafe.Pointer(&termios))) |
|
| 134 | 134 |
return err == 0 |
| 135 | 135 |
} |
| 136 | 136 |
|
| 137 | 137 |
// Restore restores the terminal connected to the given file descriptor to a |
| 138 | 138 |
// previous state. |
| 139 |
-func Restore(fd int, state *State) error {
|
|
| 140 |
- _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), uintptr(setTermios), uintptr(unsafe.Pointer(&state.termios))) |
|
| 139 |
+func Restore(fd uintptr, state *State) error {
|
|
| 140 |
+ _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, uintptr(setTermios), uintptr(unsafe.Pointer(&state.termios))) |
|
| 141 | 141 |
return err |
| 142 | 142 |
} |
| 143 | 143 |
|
| 144 | 144 |
func SetRawTerminal() (*State, error) {
|
| 145 |
- oldState, err := MakeRaw(int(os.Stdin.Fd())) |
|
| 145 |
+ oldState, err := MakeRaw(os.Stdin.Fd()) |
|
| 146 | 146 |
if err != nil {
|
| 147 | 147 |
return nil, err |
| 148 | 148 |
} |
| ... | ... |
@@ -150,12 +150,12 @@ func SetRawTerminal() (*State, error) {
|
| 150 | 150 |
signal.Notify(c, os.Interrupt) |
| 151 | 151 |
go func() {
|
| 152 | 152 |
_ = <-c |
| 153 |
- Restore(int(os.Stdin.Fd()), oldState) |
|
| 153 |
+ Restore(os.Stdin.Fd(), oldState) |
|
| 154 | 154 |
os.Exit(0) |
| 155 | 155 |
}() |
| 156 | 156 |
return oldState, err |
| 157 | 157 |
} |
| 158 | 158 |
|
| 159 | 159 |
func RestoreTerminal(state *State) {
|
| 160 |
- Restore(int(os.Stdin.Fd()), state) |
|
| 160 |
+ Restore(os.Stdin.Fd(), state) |
|
| 161 | 161 |
} |
| ... | ... |
@@ -13,9 +13,9 @@ const ( |
| 13 | 13 |
// MakeRaw put the terminal connected to the given file descriptor into raw |
| 14 | 14 |
// mode and returns the previous state of the terminal so that it can be |
| 15 | 15 |
// restored. |
| 16 |
-func MakeRaw(fd int) (*State, error) {
|
|
| 16 |
+func MakeRaw(fd uintptr) (*State, error) {
|
|
| 17 | 17 |
var oldState State |
| 18 |
- if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), getTermios, uintptr(unsafe.Pointer(&oldState.termios))); err != 0 {
|
|
| 18 |
+ if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, getTermios, uintptr(unsafe.Pointer(&oldState.termios))); err != 0 {
|
|
| 19 | 19 |
return nil, err |
| 20 | 20 |
} |
| 21 | 21 |
|
| ... | ... |
@@ -27,7 +27,7 @@ func MakeRaw(fd int) (*State, error) {
|
| 27 | 27 |
newState.Cflag &^= (syscall.CSIZE | syscall.PARENB) |
| 28 | 28 |
newState.Cflag |= syscall.CS8 |
| 29 | 29 |
|
| 30 |
- if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, uintptr(fd), setTermios, uintptr(unsafe.Pointer(&newState))); err != 0 {
|
|
| 30 |
+ if _, _, err := syscall.Syscall(syscall.SYS_IOCTL, fd, setTermios, uintptr(unsafe.Pointer(&newState))); err != 0 {
|
|
| 31 | 31 |
return nil, err |
| 32 | 32 |
} |
| 33 | 33 |
return &oldState, nil |