I'll hopefully have the next stable snapshot online tonight. I'll then re-evaluate where things are at right now and come up with a short-list of things to do over the next couple of weeks. It'll almost certainly be the remainder of the IPv6 preparation work - I'd like to prepare the last few bits of infrastructure for IPv6 - and make certain that is all stable before I start converting the client-side and server-side code to actively using the IPv6 routines.
The current IPv6 shortlist, if I decide to do it:
- client database code - convert to a radix tree instead of a hash on the IP address; make IPv4/IPv6 agnostic.
- persistent connection code - up the pconn hash key length to fit the text version of the IPv6 address. I'll worry about migrating the pconn code to a tree later on.
- Importing the last remaining bits of the IPv6 related code into the internal DNS code.
- Make sure the internal and external DNS choices both function properly when handling IPv6 addresses for forward and reverse lookups.
- Import the IP protocol ACL type and IPv6 address ACL types - src6 and dst6.
- Modify the ACL framework to use the IPv6 datatype instead of "sockaddr_in" and "inaddr" structs; then enable src6/dst6.
- Make certain the source and destination hostname ACLs function correctly for both IPv4 and IPv6.
- Test, test, test!
The IPv6 server-side stuff is a whole different barrel of fun. I'm going to ignore a lot of that for now until I've made certain the client-side code is stable and performing as well as the current IPv4-only code.
I don't even want to think about the FTP related changes that need to occur. I may leave the FTP support IPv4 only until someone asks (nicely) about it. The FTP code is rife with C string pointer manipulations which need to be rewritten to use the provided string primitives. I'd really like to do -that- before I consider upgrading it to handle IPv6.
Anyway. Lots to do, not enough spare time to do it all in.