[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-core-devel
Subject: Re: [PATCH] DNS cache for Konqueror/KIO
From: Thiago Macieira <thiago () kde ! org>
Date: 2008-06-23 6:35:24
Message-ID: 200806230835.31025.thiago () kde ! org
[Download RAW message or body]
Roland Harnau wrote:
>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.
The patch is quite ingenious, but I haven't read it all through. I'll do
it today. I especially liked the idea of using QtConcurrent to run
multiple parallel resolutions.
I didn't like the indention style. Please don't put function opening
brackets on the same line as their declaration. You also have whitespace
errors (lines ending in whitespace).
This is also a first step in fixing the long issue of not having a
centralised slave manager. One that would allow us to say "only one FTP
slave per host", for instance.
--
Thiago Macieira - thiago (AT) macieira.info - thiago (AT) kde.org
PGP/GPG: 0x6EF45358; fingerprint:
E067 918B B660 DBD1 105C 966C 33F5 F005 6EF4 5358
["signature.asc" (application/pgp-signature)]
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic