Commit Graph

856 Commits

Author SHA1 Message Date
Jordan Bancino abbbfe4d7f Replace all usages of curl in tp, document tp and tt. 2023-04-29 23:28:33 +00:00
Jordan Bancino 872fa1aa66 More documentation. It never ends! 2023-04-29 19:52:51 +00:00
Jordan Bancino a08018870e Remove obsolete documentation. 2023-04-29 18:47:20 +00:00
Jordan Bancino e0c94d7bd2 Site now pulls built man pages. 2023-04-29 18:39:01 +00:00
Jordan Bancino f819093b7d Don't spew unknown expression warnings if @suppress-warnings is set. 2023-04-29 15:28:42 +00:00
Jordan Bancino 0b1b4a8b29 Cope with preprocessor macro usage at the top level of the header.
This workaround allows us to parse the Routes.h properly, although it
notably lacks support for multi-word unknown expressions.
2023-04-29 15:24:46 +00:00
Jordan Bancino a3cc06ff2a Fix line numbers when parsing multi-line macros. 2023-04-29 15:16:58 +00:00
Jordan Bancino 2d8d5244c4 Document some new headers. 2023-04-29 15:04:16 +00:00
Jordan Bancino b70c3f0bed Finish converting all existing documentation. Next up is writing new docs. 2023-04-29 02:54:49 +00:00
Jordan Bancino 71fa96d10d Format source code. 2023-04-27 20:05:08 +00:00
Jordan Bancino a00ded6d06 Add support for parsing global variables, not just function declarations. 2023-04-27 20:04:15 +00:00
Jordan Bancino 9292f1d9da Add docs recipe for generating documentation from the headers.
Note that since all the headers are not documented yet, this will fail
because an undocumented function is a fatal error in hdoc.
2023-04-27 18:39:05 +00:00
Jordan Bancino 9880aac674 Split format recipe into format and license.
Format formats only C source code. License applies the license file to
C source code *and* header files.
2023-04-27 18:03:32 +00:00
Jordan Bancino 24a03ba126 Added some more header documentation. 2023-04-27 18:00:26 +00:00
Jordan Bancino 95cb14213f Add support for return types that are const, structs, or enums. 2023-04-27 16:02:15 +00:00
Jordan Bancino 6e976a2b8d Fix line counts on syntax errors. 2023-04-27 15:54:21 +00:00
Jordan Bancino 72467f6503 Begin moving documentation to headers. 2023-04-27 03:08:39 +00:00
Jordan Bancino 3b06ab120b Add some flags to hdoc to make it more useful. 2023-04-27 02:30:44 +00:00
Jordan Bancino 2447bb63cc Add hdoc, a simple tool for generating documentation from a C header.
This is a very early prototype. It works, but it is probably not efficient
or reliable. However, the documentation format it parses is stable, so I
will begin moving the documentation into the headers.
2023-04-27 01:34:49 +00:00
Jordan Bancino fdcf7ec065 Update changelog, add LD_EXTRA variable in td. 2023-04-26 01:43:32 +00:00
Jordan Bancino 459b2e856f Format source code. 2023-04-25 22:13:28 +00:00
Jordan Bancino 96ca9a725d Finish up capabilities for now. 2023-04-25 22:11:34 +00:00
Jordan Bancino e1367d5bff Use snprintf() instead of sprintf().
All linker warnings should now be eliminated.
2023-04-25 22:01:58 +00:00
Jordan Bancino d83db35df0 Use strncpy() instead of strcpy().
The OpenBSD linker is complaining about it. Even though every single
case strcpy() was used is safe, strncpy() provides a little bit of extra
security, and makes the linker happy.
2023-04-25 21:54:51 +00:00
Jordan Bancino d933d12e1b Make Rand use a provided Mersenne Twister.
This implementation is loosely inspired by the original paper on the
Mersenne Twister, and borrows code from a public-domain implementation of
it, adapting it to fit the style of Telodendria's code, and fixing a few
bugs regarding the size of the data type used.

Neither C nor POSIX provide a good, thread-safe pseudorandom number
generator. The OpenBSD linker started complaining about the use of
rand_r(), and no standard alternative presented itself as worthy of
consideration, so I finally decided it was time to roll my own PRNG.
2023-04-25 21:28:55 +00:00
Jordan Bancino 098eed44a0 Fix bug in MatrixWellKnown(), begin /_matrix/client/v3/capabilities 2023-04-25 18:37:25 +00:00
Jordan Bancino 2ac08ad74d Clean out finished TODO items. 2023-04-25 01:54:03 +00:00
Jordan Bancino 3e4698bf72 Update porting documentation. 2023-04-24 22:24:32 +00:00
Jordan Bancino 38565d4aa6 Update changelog. 2023-04-24 21:21:25 +00:00
Jordan Bancino 05cf076ebc Begin debugging OpenSSL. 2023-04-24 17:05:59 +00:00
Jordan Bancino a525830b64 Telodendria now responds correctly to SIGTERM. 2023-04-24 16:23:50 +00:00
Jordan Bancino 279f261aed Fix race conditions that are possible in Db.
This is accomplished by locking the entire database, and keeping it locked
until the last reference is unlocked. We get rid of per-reference locks,
because those are what cause race conditions.
2023-04-24 16:19:17 +00:00
Jordan Bancino 313249ca88 Fixed some caching bugs in Db.
Note that Db has the potential to deadlock when caching is being used,
and when caching isn't being used, an inconsistent state can occur. Future
changes to Db will fix both of these issues.
2023-04-24 15:43:24 +00:00
Jordan Bancino 737e060243 Finish up Uia fallback. 2023-04-22 15:40:25 +00:00
Jordan Bancino 5431c2cd90 Fix double-free in UiaCleanup(). 2023-04-22 13:45:01 +00:00
Jordan Bancino 2bbe13aaf0 Fix error setting up UIA flows. 2023-04-22 02:06:22 +00:00
Jordan Bancino 866343071a Continued work on UIA fallback. 2023-04-22 00:59:03 +00:00
Jordan Bancino 6a5d89e14b Work on implementing user interactive authentication fallback. 2023-04-21 02:13:06 +00:00
Jordan Bancino fb24f93aaa Fix bug with TLS where cert and key files were used after freeing them. 2023-04-20 21:12:08 +00:00
Jordan Bancino 0b7282c36a Fix build errors on some compilers due to missing symbols. 2023-04-20 19:19:23 +00:00
Jordan Bancino ec09882dbe Fix warnings about memset() 2023-04-20 17:50:22 +00:00
Jordan Bancino 3b28af2031 Fix warning on some compilers. 2023-04-20 17:40:14 +00:00
Jordan Bancino 19b0dcac5a Don't build the routing tree until absolutely necessary.
Saves us a lot of time and memory in case of an error.
2023-04-20 17:37:18 +00:00
Jordan Bancino 4a5c7480aa Fix up a few small warnings. 2023-04-20 13:49:25 +00:00
Jordan Bancino 687b89a83a Add some more user documentation to clarify how configuration works. 2023-04-20 01:39:09 +00:00
Jordan Bancino 25b7c0d059 Begin documenting Admin API. 2023-04-19 21:45:15 +00:00
Jordan Bancino ffeb45375e Implement /_telodendria/admin/privileges
Note that it's not exactly as the proposal defines it; theres a bit more
nuance that will be documented soon.
2023-04-19 18:52:05 +00:00
Jordan Bancino ae38791df2 Format code, remove dataDir from sample production.conf 2023-04-19 02:07:38 +00:00
Jordan Bancino 0cca38115a Move configuration to database, add process control API, fix memory leaks. 2023-04-19 00:33:38 +00:00
Jordan Bancino ff4d265dcc Registration tokens now determine what privileges a user gets. 2023-04-16 18:32:22 +00:00