-
Telodendria v0.2.0 Pre-Release
released this
2023-03-06 19:44:53 -05:00 | 312 commits to master since this releaseThis 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 endpoints that the spec says requires 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 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 would prevent
GET
parameters from being parsed. - Fixed the database file name descriptor 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
that causedcvs
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.
- Switched the
-std=c89
flag to-ansi
, as-ansi
might be more supported. - Fixed the
-v
flag. It now sets the log level to debug as soon as possible to
allow debugging 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.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 us know about it!Downloads
- Added the basic form of the user registration API. If registration is enabled