Today, I attempted to find out why my favorite Jabber client doesn't work in my new IPv6-only environment at home. The answer was simple: psi attempted to find a route to the IPv4 address of the foreign host and found out that there was no such thing as an IPv4 route.
I found quickly a thread on a web forum where someone talked about the same problem. Apparently, psi calls gethostbyname() manually instead of using getaddrinfo(). The fix which was committed in version 0.9.2 but not activated by default was to pass the unresolved hostname to the qt library rather than to do the resolution oneself.
The rest of the code doesn't have any problems with IPv6 compatibility. Psi doesn't use sockets at all, it uses the QSocket interface of qt. This interface supports IPv6 «automagically» since qt 3.3, so once the DNS resolution is disabled, psi does IPv6 flawlessly.
One has to wonder why this flag was not active by default, since it doesn't do any harm. But it's nice to see that the fix is so easy this time.