[kde-solaris] KServerSocket and IPV6 on Solaris

Karsten Künne kuenne at rentec.com
Fri Jan 14 20:06:08 CET 2005


As I was debugging why filetransfers aren't working via MSN in kopete I 
stumbled over the KServerSocket class and it's behavior on Solaris. The MSN 
filetransfer implementation uses it (and so far it's the only application I 
found which uses it) but on Solaris 9 at least the following happens. If you 
don't specify a nodename you want to listen on it always allocate a PF_INET6 
socket and then tries to bind to "::" (localhost or so in IPV6) which fails 
because we don't have IPV6 configured on the interface, then it tries to bind 
to "0.0.0.0" which fails because it's an IPV6 socket and this is an IPV4 
address and last it tries to bind to "/tmp/<portnumber>" which also fails 
because it's not a UNIX domain socket. I don't know how to properly fix this 
for Solaris. As a workaround I changed msnfiletransfersocket.cpp in kopete to 
specify "0.0.0.0" as nodename in the setAddress call but this obviously 
breaks IPV6 (which we don't care about). Maybe somebody has a better fix for 
this. And, no, setting "KDE_NO_IPV6" in the environment doesn't fix it (tried 
that).

Following is the patch:

--- msnfiletransfersocket.cpp.orig      Thu Jan 13 18:23:29 2005
+++ msnfiletransfersocket.cpp   Fri Jan 14 14:02:15 2005
@@ -192,7 +192,7 @@
        m_server = new KServerSocket();

        QObject::connect( m_server, SIGNAL(readyAccept()), this,  
SLOT(slotAcceptConnection()));
-       m_server->setAddress(QString::number(port));
+       m_server->setAddress("0.0.0.0", QString::number(port));

        kdDebug(14140) << "MSNFileTransferSocket::listen: about to 
listen"<<endl;
        bool listenResult = m_server->listen(1);


Karsten.
-- 
You don't sew with a fork, so I see no reason to eat with knitting
needles.
  -- Miss Piggy, on eating Chinese Food
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://mail.kde.org/pipermail/kde-solaris/attachments/20050114/e4510d67/attachment.pgp


More information about the kde-solaris mailing list