Quoting Rob Napier <rnapier@xxxxxxxxx>:
My understanding of res_querydomain() is that it will automatically
re- try in TCP if it truncates. However, it will set the "tc" flag
in HEADER to 1 nonetheless. Therefore, testing for "tc" is not
helpful, unless RES_IGNTC is set (and that flag is ignored anyway,
so it never matters).
So if your SRV record response is very large (like ours), and you
truncate in UDP, it re-tried in TCP, but Gloox fails anyway.
The fix, I believe, is to change dns.cpp as follows:
Committed, thanks.
cheers,
Jakob