Saturday, August 12

Progress Report #10

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:
  1. TESTS - TESTS - TESTS! Writing tests is probably the hardest part yet, but that's a good thing!
  2. 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


No comments: