--nextPart3671172.deXZ3bQm1a Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline 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=20 it today. I especially liked the idea of using QtConcurrent to run=20 multiple parallel resolutions. I didn't like the indention style. Please don't put function opening=20 brackets on the same line as their declaration. You also have whitespace=20 errors (lines ending in whitespace). This is also a first step in fixing the long issue of not having a=20 centralised slave manager. One that would allow us to say "only one FTP=20 slave per host", for instance. =2D-=20 =A0 Thiago Macieira =A0- =A0thiago (AT) macieira.info - thiago (AT) kde.org =A0 =A0 PGP/GPG: 0x6EF45358; fingerprint: =A0 =A0 E067 918B B660 DBD1 105C =A0966C 33F5 F005 6EF4 5358 --nextPart3671172.deXZ3bQm1a Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) iD8DBQBIX0QsM/XwBW70U1gRAoypAJ9SmlfCisurcnbrurxzqEdsklCgZwCdEUyM vHDrj9r2nmfzSZsN6/3OxS4= =du41 -----END PGP SIGNATURE----- --nextPart3671172.deXZ3bQm1a--