[bind10-dev] Trying to shoe-horn truncate (trac #499)
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?
More information about the bind10-dev