client-side DNS TCP

Dimitris Gravanis dimgrav at
Thu Jul 6 19:13:06 UTC 2017


I'm trying to put together the standard for the client-side DNS TCP 
calls in libcli/dns/dns.c, libdns.h and dns.h, so that I can then work 
on switching from UDP for packages larger than 512 bytes. I'm using 
source4/dns_server/dns_server.c and dns_server for cross-referencing and 
to figure out how exactly should I make the client implementation.

I've gone through RFC 1035/768/793/2548/7766, but I'm still getting a 
bit overwhelmed from the custom headers and APIs that are used in Samba. 
To my understanding, dns_server.c/.h cover the stream, socket and 
binding over TCP and most functions from dns_server.c that handle the 
above, could be directly implemented to libcli/dns.c, am I correct? Do I 
use the same memory and tevent context that is used for UDP requests?

Both talloc and tevent have given me a bit of a hard time, information 

I've also looked into PIDL and found the definition for TSIG records, 
along with a "fake" TSIG definition, could you tell me what exactly this 
is, since I didn't come across it in RFC 2845?

I checked this 
tutorial as well (it's from a Greek University), though it uses Sockets, 
it helped me put all those RFCs in perspective.

I'd greatly appreciate your help,


More information about the samba-technical mailing list