diff --git a/apps/wolfssh/wolfssh.c b/apps/wolfssh/wolfssh.c index c22f5046b..8a749c6c2 100644 --- a/apps/wolfssh/wolfssh.c +++ b/apps/wolfssh/wolfssh.c @@ -406,11 +406,10 @@ static THREAD_RET readPeer(void* in) if (args->rawMode == 0) { DWORD wrd; - if (GetConsoleMode(stdoutHandle, &wrd) == FALSE) { - err_sys("Unable to get stdout handle"); - } - - /* depend on the terminal to process VT characters */ + /* get console mode will fail on handles that are not a console, + * i.e. if the stdout is being redirected to a file */ + if (GetConsoleMode(stdoutHandle, &wrd) != FALSE) { + /* depend on the terminal to process VT characters */ #ifndef _WIN32_WINNT_WIN10 /* support for virtual terminal processing was introduced in windows 10 */ #define _WIN32_WINNT_WIN10 0x0A00 @@ -418,8 +417,9 @@ static THREAD_RET readPeer(void* in) #if defined(WINVER) && (WINVER >= _WIN32_WINNT_WIN10) wrd |= (ENABLE_VIRTUAL_TERMINAL_PROCESSING | ENABLE_PROCESSED_OUTPUT); #endif - if (SetConsoleMode(stdoutHandle, wrd) == FALSE) { - err_sys("Unable to set console mode"); + if (SetConsoleMode(stdoutHandle, wrd) == FALSE) { + err_sys("Unable to set console mode"); + } } } diff --git a/examples/client/client.c b/examples/client/client.c index d375b21d9..e37468c6f 100644 --- a/examples/client/client.c +++ b/examples/client/client.c @@ -370,20 +370,20 @@ static THREAD_RET readPeer(void* in) if (args->rawMode == 0) { DWORD wrd; - if (GetConsoleMode(stdoutHandle, &wrd) == FALSE) { - err_sys("Unable to get stdout handle"); - } - - /* depend on the terminal to process VT characters */ - #ifndef _WIN32_WINNT_WIN10 - /* support for virtual terminal processing was introduced in windows 10 */ - #define _WIN32_WINNT_WIN10 0x0A00 - #endif - #if defined(WINVER) && (WINVER >= _WIN32_WINNT_WIN10) - wrd |= (ENABLE_VIRTUAL_TERMINAL_PROCESSING | ENABLE_PROCESSED_OUTPUT); - #endif - if (SetConsoleMode(stdoutHandle, wrd) == FALSE) { - err_sys("Unable to set console mode"); + /* get console mode will fail on handles that are not a console, + * i.e. if the stdout is being redirected to a file */ + if (GetConsoleMode(stdoutHandle, &wrd) != FALSE) { + /* depend on the terminal to process VT characters */ + #ifndef _WIN32_WINNT_WIN10 + /* support for virtual terminal processing was introduced in windows 10 */ + #define _WIN32_WINNT_WIN10 0x0A00 + #endif + #if defined(WINVER) && (WINVER >= _WIN32_WINNT_WIN10) + wrd |= (ENABLE_VIRTUAL_TERMINAL_PROCESSING | ENABLE_PROCESSED_OUTPUT); + #endif + if (SetConsoleMode(stdoutHandle, wrd) == FALSE) { + err_sys("Unable to set console mode"); + } } }