GSoC status update, week 4
Work done since last report
- Normalization of discovered information, add protocol version info to ID alist
- Set valid session and association types on discovery
- Communication formats: btwoc, key-value format, with tests
- New dependency: trivial-utf-8, for portable and fast encoding strings. Needs a changeset not merged yet into mainline, which adds support for
:STARTand:ENDparameters forUTF-8-BYTES-TO-STRING, which I wrote to reduce consing in key-value format message decoding - Association support, unencrypted and Diffie-Hellman, 1.1-compatible
Problems
Many of code that I wrote is not testable enough. There are tests for library functions (data format etc), but main information flow is still untested. I will need to refactor the code to improve testability. This may be in line with portability work – along with true implementations of HTTP client/server stuff, dummy implementation for unit testing the logic may be provided. Also, some refactoring of biggest functions – DISCOVER and ASSOCIATE – to split it into separate, unit-testable functions might be a Good Thing.
Plans for next half week
Finishing the non-portable client:
- Signature generation and checking for protocol messages
- Authentication request, authentication response verification
- HTTP-server-side flow with Hunchentoot, for indirect messages and user-visible checks (if time permits)
