ioctl: Forward standard termios calls to real pty#279
Open
martinpitt wants to merge 1 commit intomainfrom
Open
ioctl: Forward standard termios calls to real pty#279martinpitt wants to merge 1 commit intomainfrom
martinpitt wants to merge 1 commit intomainfrom
Conversation
Handle ioctls TCGETS{,2} and friends on emulated TTY devices by
forwarding them to the underlying PTY. Our ioctl handler previously
always returned `ENOTTY` for these, unless there was an explicit
handler.
This fixes tests with uutils (Rust coreutils)' `stty` implementation,
the current Ubuntu development series just switched to that [1].
GNU coreutils avoids that problem:
1. Opens (emulated) /dev/ttyUSB1 as fd 3
2. dup2(3,0) = 0
3. close(3)
4. ioctl(0, TCGETS2, ...) = 0
i.e. it bypasses the emulation and does the ioctl on the real underlying
PTY.
Rust coreutils does *not* do the dup() step, but calls TCGETS2 on the
/dev/ttyUSB1 directly, so it previously got ENOTTY and failed.
[1] https://launchpad.net/ubuntu/+source/rust-coreutils/0.6.0-0ubuntu1
Owner
Author
will look later. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Handle ioctls TCGETS{,2} and friends on emulated TTY devices by forwarding them to the underlying PTY. Our ioctl handler previously always returned
ENOTTYfor these, unless there was an explicit handler.This fixes tests with uutils (Rust coreutils)'
sttyimplementation, the current Ubuntu development series just switched to that [1].GNU coreutils avoids that problem:
i.e. it bypasses the emulation and does the ioctl on the real underlying PTY.
Rust coreutils does not do the dup() step, but calls TCGETS2 on the /dev/ttyUSB1 directly, so it previously got ENOTTY and failed.
[1] https://launchpad.net/ubuntu/+source/rust-coreutils/0.6.0-0ubuntu1
Fixes the ubuntu/devel failure which started a few days ago.