Progress Report #10 12-08-2017
Since the last update, all active work has been moved, restructured (and changed a bit where needed) so that it could be integrated to the
samba-fork I use on GitHub.
The
Samba-GSOC2017 repo will still be updated to match the samba-fork repo, but not always simultaneously.
Major changes in structure include:
cli_dns.c
This will be acting as the DNS UDP/TCP call handler with socketwrapper support and TSIG generation, which is the project goal. This is intended to replace libcli/dns/dns.c of the mainline Samba Git in the final builds, through libcli/dns/wscript_build.
client_crypto.c - libtsig.h
GSS-TSIG client-side handling for signed packets with the structures and utilities lib.
dns_tcp.c - libtcp.h
TCP client-side DNS call handling and structures lib.
dns_udp.c - libdns.h
The pre-existing async DNS library for Samba with socketwrapper support, as written by Kai Blin.
The above corresponding .h files are used in cli_dns.c. The .c files that handle calls and sig generation are incorporated in cli_dns.c and are currently used only to facilitate writing tests. They are not intended to be part of the builds (will be probably removed when cli_dns.c and tests are finalized).
wrap_cli.c - libwrap.h
Multiple wrapping for cli_dns.c and associated library.
cmocka-tests
- cli_crypto_test.c
- dns_tcp_test.c
- dns_udp_test.c
The test suites that are currently under development, in accordance to client_crypto, dns_tcp, dns_udp. Integration of tests to a larger suite that would test cli_dns.c should be relatively simple, if these suites are individually succesful.
To-do list:
- TESTS - TESTS - TESTS! Writing tests is probably the hardest part yet, but that's a good thing!
- Complete preprocessor include/define statements in all .c and .h files as required for functionality and performance.
Should I be done with the above swiftly, I might be able to go through the dns handler code for improvements.
I went through the Samba Wiki in regard to adding documentation, I've started making some drafts, but I'll have to get some guidelines from my mentors and the team.
Cheers,
Dimitris