
Greetings All, As I mentioned last week, libd is the base framework that will be used to make up Bahamut 2.0 (or possibly some yet-to-be-named ircd). I have now made the code available - you can grab it via git: git clone http://code.dal.net/libd.git Please take a look! There is quite a bit of work to be done, and I'm more than willing to accept code from anyone. Please keep in mind that this is not nearly complete, and I still see many areas which I'm not happy with. I would have felt better to have kept this under wraps for another six months to poke it, but honestly - I work too slowly by myself. The coding style is effectively the Linux Kernel style, with an exception made for line length. K&R, real tabs, etc. I WILL be enforcing coding style, so please review your patches prior to submitting them to make sure they look consistent. The package has a TODO list, but I'll include it here. I look forward to your comments and to your code contributions! Please send patches to me and dalnet-src@ Thanks! -epiphani TODO LIST --------- API: I'd like to see the API cleaned up here and there, and generally consolidated and documented. Groups: I'm having second thoughts about the supergroup/subgroup structure I originally built. Review, and possible remove the supergroup/subgroup functionality, leaving that to the application to manage. Threading: - Implement threading! Discussion ongoing - current ideas focus around... - Accept thread - poll/read/parse thread pool assigned sockets from accept thread - write thread to handle blocked sockets that cannot be written to immiedately (?) - event timer thread and interfaces to go with it Socket Handling: - SSL support, possibly encrypting prior to buffering in order to maintain vectored writes - Compression support via zlib - UDP socket support - Outbound connect support Error Handling: - The error handling and logging facilities need to be improved and properly implemented Time Syncronization: - Possibly in concert with the event threading system, time sync items need to be addressed Other than that, look up some FIXME's in the code, there are a bunch of them!