Hi, I noticed that the TCPClient uses `endTime` as nanoseconds but this line still compares it with `currentTimeMillis` https://github.com/dnsjava/dnsjava/blob/master/src/main/java/org/xbill/DNS/TCPClient.java#L115. This essentially makes the receive timeout being ignored. This was introduced in https://github.com/dnsjava/dnsjava/commit/629f2eb3f5c5ff0695f8264dde03ed7666744775, and I don't know if there are other similar bugs in the other files that were changed. Thanks!