If you didn't know, the code I was referring to below has been accepted and integrated into KDE a long time ago. It was released with KDE 2.2 and has received many a fix since. Not many new features have been added since, though.
However, now I'm in the process of rewriting what I wrote before. This time, it's to fix some of the architectural mistakes I made the first time. And to simplify the whole thing, which is regarded as bloated.
Yea, I agree with that assessment. For instance kextsock.cpp is the third largest file in kdecore.
Ok, now to the new thing. This time, the class KHostname I mentioned two years ago is actually getting written, in the shape of the KDE::Network::Resolver (yay for namespaces!). Interesting how things wound back to haunt you a few years later, ain't it?
I've started the process this time by writing text describing what would need to be done and getting peer feedback. And still is there the possibility of making this code into Qt.
What is now written: the Resolver API, most of its internals, plus the resolver manager and a few helper classes. The classes that do the dirty work itself are not yet written.
Right now, I'm asking myself the question: how can I make a worker class request another lookup and still be called for post-processing, without blocking a running thread?
Code is here.