NAME
Telodendria
—
The change log for the Telodendria
project.
PROJECT STATUS
Telodendria
is a very ambitious project.
There's a lot that needs to happen yet before it is usable. At the moment,
Telodendria
is starting to resemble a Matrix
homeserver, but you can't really call it one yet. The foundation is mostly
in place; now there's the Matrix specification to implement.
Just because there's not much here yet doesn't mean you should go away! I could always use help, so you are more than welcome to get involved in the project if you want to see things move quicker. Feel free to donate using the links on the project website, or see the contributing(7) page for details on how to get involved. The CVS repository has a file called TODO.txt, which contains a checklist of the items that need to be completed. Feel free to grab an item on that list and start writing patches! It's a good idea to join the Matrix rooms noted in telodendria(7) as well, so you can discuss your progress and ask questions.
v0.2.1
Monday, March 6, 2023
This is a patch release that fixes a few typos and other minor issues.
v0.2.0
Monday, March 6, 2023
This release is focused on providing a decent amount of the client authentication API. You can now create accounts on a Telodendria homeserver, and log in to get access tokens.
New:
- Added the basic form of the user registration API. If registration is enabled in the configuration file, clients can now register for Matrix accounts.
- Added the basic form of the user login API. Clients can now log in to their accounts and generate access tokens to be used to authenticate requests.
- Added the basic form of the user interactive authentication API, which can be used by any endpoints that the spec says require it. Currently, it only implements the dummy and password stages, but more stages, such as the registration token stage, will be added in future releases.
- Added a simple landing page that allows those setting up
Telodendria
to quickly verify that it is accessible where it needs to be. - Added the static login page for clients that don't support regular login.
Changes:
- Improved HTTP request logging by removing unnecessary log entries and making errors more specific.
- Leaked memory is now hexdump-ed out to the log if the log level is set to
debug. This greatly simplifies debugging, because developers can now
easily see exactly what the contents of the leaked memory are. Note that
in some circumstances, this memory may contain sensitive data, such as
access tokens, usernames, or passwords. However,
Telodendria
should not be leaking memory at all, so if you encounter any leaks, please report them. - Refactored a lot of the code and accompanying documentation to be more readable and maintainable.
Bug fixes:
- Fixed a memory leak that would occur when parsing an invalid JSON object.
- Fixed an edge case where HTTP response headers were being sent before they were properly set, causing the server to report a status of 200 even when that wasn't the desired status.
- Fixed a few memory leaks in the HTTP parameter decoder that would occur in some edge cases.
- Fixed an "off-by-one" error in the HTTP server request parser that prevented GET parameters from being parsed.
- Fixed the database file name generator to prevent directory traversal attacks by replacing special characters with safer ones.
- Fixed a memory leak that would occur when closing a database that contains cached objects.
- Fixed a memory leak that would occur when deleting database objects.
- Fixed a few non-fatal memory warnings that would show up as a result of passing a constant string into certain functions.
Misc:
- Fixed a bug in td(8) that caused cvs(1) to be invoked in the wrong directory when tagging a new release.
- Added support for environment variable substitution in all site files.
This makes it easier to release
Telodendria
versions. - Fix whitespace issues in various shell scripts.
- Fixed the debug log output so that it only shows the file name, not the entire file path in the repository.
- Updated the copyright year in the source code and compiled output.
- Switch the -std=c89 flag to -ansi instead, as -ansi might be more supported.
- Fixed the -v flag. It now sets the log level to debug as soon as possible to allowe debugging the configuration file parsing if necessary.
... And many more bug fixes and feature additions! Too much has
changed to make a comprehensive change log. A lot of things have been done
under the hood to make Telodendria
easier to develop
in the future. Please test the current functionality, and report bugs to the
Matrix rooms.
The following platforms have been known to compile and run
Telodendria
:
- OpenBSD
- Linux (GNU and non-GNU)
- Windows (via Cygwin)
- FreeBSD
- NetBSD
- DragonFlyBSD
- Haiku OS
- Android (via Termux)
Telodendria
is about being portable; if
you compile it on an obscure operating system, do let me know about it!
v0.1.0
Tuesday, December 13, 2022
This is the first public release of
Telodendria
so there are no changes to report.
Future releases will have a complete change log entry here.
This is a symbolic release targeted at developers, so there's nothing useful to ordinary users yet. Stay tuned for future releases though!