KExtendedSocket async lookup

Thiago Macieira thiagom at wanadoo.fr
Thu Aug 1 20:00:11 BST 2002


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
 
Waldo Bastian wrote:
>Hi Thiago,
>
>After looking into the KExtendedSocket code I noticed that async lookups use
>the QDns class. Doesn't this imply that the lookup results for sync and
>asynced mode operation can vary wildly since QDns does not take into account
>/etc/hosts among others?

That could be a problem, yes. But I could find no other way of doing an 
asynchronous lookup without using the undocumented, GNU-specific 
getaddrinfo_a() function.

I had planned on writing a resolver library that would do all that and also 
implement SVR-based lookups, but I simply can't find the time.

Do you have any other suggestions?

>Related to this differences, netsupp.cpp has a test for the availability of
>IPv6 but the async lookup code does not seem to check that and do a IPv6
>lookup in all cases.

Hmm... true. It would be then useful to make the same tests and decide whether 
to do an IPv6 lookup or not.

>As of last year there were still a lot of nameservers out there that don't
>properly handle IPv6 lookups (bbc.co.uk the most well known) so not being
>able to disable IPv6 lookups is a problem. (See e.g. BR30078)

The thing is, either we do it right or we work around those buggy servers. The 
idea behind getaddrinfo() is that we don't have to know what kind of 
addresses we're looking for. So, it will do IPv4, IPv6 and Unix lookups as of 
now and, maybe in the future, some new things. That we accomplish by using 
AF_UNSPEC lookups.

Now, to work around those buggy servers -- disabling IPv6 lookups -- we would 
have to give up our ignorance of the socket type and force an IPv4 lookup. 
That means we lose v6 (which is the intention) and also anything else that 
getaddrinfo might want to give us, like Unix sockets.

The code in kde_getaddrinfo() (netsupp.cpp) is already a mess. I can't 
understand most of it any longer, which is a reason why I wanted to rewrite 
the lookup code.

Anyways, luckily for us, it seems that bbc.net.uk (which is where bbc.co.uk 
domains seem to be pointing) is running a decent DNS server now, that answers 
correctly to IPv6 queries(*)

Besides, IPv6 lookups aren't a new thing. They've been around since December 
1995 (RFC 1886). You'd think that DNS servers would have been updated since 
then... I don't even want to know what will happen when A6, DNAME and 
bit-field DNS lookups become common.

(*) even though it still seems to have an odd behaviour, compared to BIND.

- -- 
  Thiago Macieira - UFOT Registry number: 1001
 thiagom at mail.com
   ICQ UIN: 1967141  PGP/GPG: 0x6EF45358
     Registered Linux user #65028
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE9SYS2M/XwBW70U1gRAh4wAJ0cfGSB1Hxc5+9lWMMlXSv1WhLN1ACfdS7q
H7Oxr2ZIxNoj4bYe+0gqQmQ=
=LRoU
-----END PGP SIGNATURE-----





More information about the kde-core-devel mailing list