[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