[PATCH] DNS cache for Konqueror/KIO

Roland Harnau truthandprogress at googlemail.com
Sun Jun 22 14:23:43 BST 2008


Hello,

KIO's asynchronous design and some peculiarities in Qt's network
department often result in concurrent  queries to resolve host names,
especially if Konquerer launches its huge slave army. As witnessed by
several bug reports (e.g. 162600)  some kind of router can't cope with
this very well. The reason (at least in my case) is not the "crappy"
handling of IPv6 queries in itself. An analysis with tcpdump reveals
there are in general problems with concurrent queries to resolve the
same name if the requested record (AAAA or A) does not exist. A
solution (or workaround, as you like it) is a local DNS cache. The
core of my patch is therefore a reimplementation of Qt's asynchronous
resolver QHostInfo::lookupHost  in form of
HostInfoAgent::lookupHost.with integrated cache and its integration
into KIO. The cache lives in a central place,  in the application's
address space,  but is used by  several slaves (instances of classes
derived from TCPSlaveBase) living in separate process contexts. So
some IPC is necessary, and I have simply used the socket connection
between the slave and its counterpart in the application's address
space.

Roland
-------------- next part --------------
A non-text attachment was scrubbed...
Name: kdelibs-DNS-cache.diff
Type: application/octet-stream
Size: 14836 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20080622/eedc7c3d/attachment.obj>


More information about the kde-core-devel mailing list