Subject: Bug#566: [X2Go-Dev] Bug#566: X2Go Client for Windows 4.0.2.1 cannot create C:\Users\<username>\ssh\known_hosts file when the local Windows account username has non-Ascii characters

From: Michael DePaulo <[email-masked]>
Date: Sun, 7 Sep 2014 09:23:22 -0400

On Sun, Sep 7, 2014 at 6:04 AM, George Trakatelis <[email-masked]> wrote:
[...]
>
> a. Installed German keyboard. Hit ';' to produce an accented letter
> and -to my surprise- got ö. So I thought ölexandr was the right name to test for username.
>
> b. Created user ölexandr and logged in as that user.
> The patch did not work, as you mentioned.
>
> c. As toLocal8Bit() returns the local 8-bit representation of a string,
> I changed the system locale for non-unicode programs to German.
> Now the patch worked!
>
> I think the patch solves the problem for the Windows users who use English
> as a foreign language and prefer having (non-Ascii) usernames in their native language.
>
> -George
>
> PS. A better title for the bug would be
>
> X2Go Client for Windows 4.0.2.1 cannot create C:\Users\<username>\ssh\known_hosts file when the local Windows account username has non-Ascii characters

Hi Mike#1 and George,

1. What do you think of using toUtf8() instead? I am hoping that will
fix the bug regardless of the locale.

I tried changing it to that (bug566.utf8.test.patch), but it still did
not fix this bug with the greek username on my system with the locale
set to English. It did not introduce a regression for my ASCII user
account at least.

If libssh needs to be recompiled for Unicode, I can do that. I just
recompiled it for bug #590.

FYI: This is the API we are calling:
http://api.libssh.org/stable/group__libssh__session.html#ga7a801b85800baa3f4e16f5b47db0a73d

2. in sshmasterconnection.cpp, we also set "SSH_OPTIONS_USER" . I
think that we should also change its value from to.Ascii() to
toLocal8Bit() or toUtf8(). bug566.test.v2.patch has this change for
toLocal8Bit(), and bug566.utf8.test.patch has it for toUtf8().

-Mike#2