containerd / containerd/console
windows: Why `initStdios` ignores `GetConsoleMode` errors?
- Dominant language
- Go
- Stars
- 200
- Forks
- 60
- Avg merge
- 5d 21h
- Merged PRs (30d)
- 1
Description
Hey there,
Frankly good designed library.
Specifically I am not aware how `golang` `std` works but if it gets its streams using `GetStdHandle` `GetConsoleMode` will fail if a stream was redirected.
https://stackoverflow.com/questions/33476316/win32-getconsolemode-error-code-6
> GetConsoleMode takes A handle to the console input buffer or the console screen buffer.
https://docs.microsoft.com/en-us/windows/console/getconsolemode
> The standard handles of a process may be redirected by a call to SetStdHandle, in which case GetStdHandle returns the redirected handle. If the standard handles have been redirected, you can specify the CONIN$ value in a call to the CreateFile function to get a handle to a console's input buffer. Similarly, you can specify the CONOUT$ value to get a handle to a console's active screen buffer.
https://docs.microsoft.com/en-us/windows/console/getstdhandle
If this is the case it could be handled by oppening `CONIN` `CONOUT`. (I am not sure though how `SetConsoleMode` will work on such handles).
But my point is if `GetConsoleMode` fails maybe it'd better to return error in `newMaster`?
https://github.com/containerd/console/blob/05dadd92d21fc51f0bf56eadcb4201955cfc98d8/console_windows.go#L32-L67
Thank you.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.