Fix Socket#tty?
to false
on Windows
#13175
Merged
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.
This ended up being not as straight forward as the
FileDescriptor
context asfd
in this case is actually aLibC::SOCKET
not a rawInt
like in the other context. After doing some research it seems that sockets can be treated like other windows handles and as such can pass it to_open_osfhandle
in order to get a C file descriptor to pass to_isatty
.After this PR, the spec I added correctly returns
false
, tho I'm not sure if there is a case where you can get a socket to be a tty in order to test the case of it beingtrue
.Fixes #13165
refs:
EDIT: After reading some more I'm not so sure:
Transferring the ownership of the handle to the FD doesn't seem like what we want, and can't really close it w/o also closing the underlying handle?
EDIT2: Just going to try returning
false
given it doesn't seem like you can have a windows socket be a tty. Can revisit in future if this is disproven, but at least gets things compiling.