[bind10-dev] Trying to shoe-horn truncate (trac #499)

Scott Mann smann at isc.org
Sun Jan 30 17:34:25 UTC 2011

Currenty, a UDPQuery object is used to send and receive dns messages via 
the resolver. While this was probably expedient at the time it was 
written, it is a problem now.

I think that the correct way to solve this problem is to complete the 
IOSocket abstraction layer (see src/lib/asiolink/iosocket.cc) and then 
abstract UDPQuery to IOQuery (or pick a better name) which would handle 
either UDP or TCP communications. Another, less desirable approach, 
would be to create a separate TCPQuery class that would effectively 
behave like UDPQuery but for TCP. The problem here is that much of the 
code would be duplicated (callbacks, send functions, etc) and there 
might also be some additional code necessary for this approach (that 
wouldn't otherwise be needed).

In an effort to try to find a short-cut, I've spent a fair bit of time 
trying to massage UDPQuery into something that could handle the TCP 
communication and I've run into various problems. All of which has left 
me wondering if we ought not just fix IOSocket. I think this would 
likely add a task or two. At this point, I am unsure of the impact that 
would have on attaining our 1st year goals on the other hand, I am also 
concerned about the amount of refactoring that will become necessary 
beginning in April.

Thoughts or suggestions?

Thank you.

More information about the bind10-dev mailing list