Groesbeek, view of the 'National Liberation Museum 1944-1945' in Groesbeek. © Ton Kersten
Fork me on GitHub
Archive for January 2010

Git version 1.6.6.1

2010-01-22 (40) by Ton Kersten, tagged as old

This morning a git (1.6.6.1) arrived with a copule of nice bug fixes. I created complete CentOS5 RPM's for this again.

These new RPM's can be found in the files section.

Software patents

2010-01-19 (39) by Ton Kersten, tagged as old

They have started again, those EU nitwits. When does the EU just stop with this madness?

stopsoftwarepatents.eu petition banner

Stop them now and (re)sign the petition against software patents.

Nanoblogger upgrade

2010-01-14 (38) by Ton Kersten, tagged as old

Today I upgraded my NanoBlogger software from version 3.3 to version 3.4.1.

This whole process was completely painless. Just installed Nanoblogger 3.4.1 and regenerated everything and that was it.

A quick 'side by side' compare of the old and the new one revealed nothing special.

If you see any errors, please let me know.

SSH troubles resolved

2010-01-05 (37) by Ton Kersten, tagged as old

When I was installing a new server I thought that it would be nice to have the server display a nice banner when I contact it. With OpenSSH this is rather easy to achieve. Just setting the Banner option in /etc/ssh/sshd_config should do the trick. I also thought it would be nice to have the servername displayed, created with Figlet. So when I login the screen should look something like this:

 _ __ ___  _   _ ___  ___ _ ____   _____ _ __ 
| '_ ` _ \| | | / __|/ _ \ '__\ \ / / _ \ '__|
| | | | | | |_| \__ \  __/ |   \ V /  __/ |   
|_| |_| |_|\__, |___/\___|_|    \_/ \___|_|   
           |___/

I set this all up and when I logged in the screen looked like:

 _ __ ___  _   _ ___  ___ _ ____   _____ _ __ 
| '_ ` _ \\| | | / __|/ _ \\ '__\\ \\ / / _ \\ '__|
| | | | | | |_| \\__ \\  __/ |   \\ V /  __/ |   
|_| |_| |_|\\__, |___/\\___|_|    \\_/ \\___|_|   
           |___/

I guess you can understand it's not what I wanted. All backslashes are doubled, hmmm weird.

Poking around in the system (CentOS 5.4) seemed to lead me to the mingetty command, because that's what's used to login.

In the source code of mingetty I found:

if ((fd = fopen (ISSUE, "r"))) {
    while ((c = getc (fd)) != EOF) {
        if (c == '\\')
            output_special_char (getc(fd));
        else
            putchar (c);
    }
    fflush (stdout);
    fclose (fd);
}

so that could be it.

As a test I put a mingetty escape sequence in the /etc/issue file, but that showed up completely the same, no mingetty translation. So that's not it. Not that many options left. Maybe the OpenSSH server displaying the backslashes the wrong way.

Tracing the OpenSSH server source code showed that it couldn't be that one, because the Banner file is just sent by an atomic write.

But, if it's not the server, maybe it's the client. Another source code scan of the OpenSSH stuff revealed the culprit. In the file sshconnect2.c the function input_userauth_banner displays the banner, sent from the server. On line 417 (in my source tree, OpenSSH version 5.3p1) it says

strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL);

So "unsafe" characters and "octal" characters are encoded. The man page of strnvis states:

There is one additional flag, VIS_NOSLASH, which inhibits
the doubling of backslashes and the backslash before the
default format

So I changed the line to

strnvis(msg, raw, len * 4 + 1, VIS_SAFE|VIS_OCTAL|VIS_NOSLASH);

recompiled SSH and reconnected to my new, shiny server.

Hurray, problem solved.

Checking the Internet I found out that someone already found this bug and checked it in with the OpenSSH developers (about an hour before I tried to check it in). It will be resolved in version 5.4, but it can still take some time to find it's way into all distributions.

Git version 1.6.6

2010-01-04 (36) by Ton Kersten, tagged as old

A new git (1.6.6) arrived and I thought I should create RPM's for this again.

These new RPM's can be found in the files section.