d565640455
Add schema for PDUs v1 and v3, the only unique PDU formats.
...
All other room versions use one of these two PDU formats.
2023-08-10 00:08:33 +00:00
bc71a7ec01
Add admin privilege to manage room aliases.
2023-08-09 15:50:03 +00:00
69d28f39d1
Begin working on room aliases.
...
These endpoints will help me build out some functionality that will be
needed when actually implementing rooms.
2023-08-09 15:19:45 +00:00
e0af88145e
Add RouteCreateRoom stub.
2023-08-08 15:11:50 +00:00
6ef965d1e0
Apply patch to make MatrixErrorCreate() take a custom message.
2023-08-05 19:26:03 +00:00
78302d6320
Print admin registration token to configured log, not default stdout.
...
If Telodendria is started as a daemon and is logging to the syslog, we
want the token to show up in the syslog.
2023-08-05 14:12:02 +00:00
6ec87b8d76
Properly exclude Schema directories from showing up in CVS.
2023-08-05 14:03:08 +00:00
5f3220372e
Implement filter validation by using j2s.
2023-08-05 13:46:23 +00:00
c96ac30f28
Fix Unicode handling in Json, don't sign-extend bytes in Stream.
2023-07-15 17:57:21 +00:00
a4330123b9
Add EventRedact() prototype.
2023-07-09 23:18:18 +00:00
b1c23ee53a
Begin prototyping state resolution API.
2023-07-07 03:15:13 +00:00
bc8283f844
Begin prototyping room API.
2023-07-07 02:56:09 +00:00
539fde773f
Fix CanonicalJson and ArraySort.
2023-06-21 02:37:56 +00:00
e3badbd55c
Format source code.
2023-06-18 02:53:52 +00:00
861d4146c0
Add Filter API to validate filters and process events.
2023-06-18 02:53:06 +00:00
f9e1250d47
Begin working on filtering.
2023-06-17 19:09:06 +00:00
8bda70b1fb
Refactor Sha API to return raw bytes, added Sha1() function.
2023-06-17 17:36:11 +00:00
96a1d3c3c4
Move stream assignment; this makes debugging easier.
2023-06-04 18:50:02 +00:00
faaa12c51f
Re-add memory bounds checking.
...
Also fixed a recursive lock error in some configurations, and replaced
a usage of strcpy() with strncpy().
2023-05-29 23:53:17 +00:00
c206ec495d
Format code.
2023-05-27 18:22:38 +00:00
34eb9ff670
Report memory hook issues as errors, segfault on error.
2023-05-25 18:26:17 +00:00
a4f369a0a9
Fix leak in HttpClient.
2023-05-21 13:55:49 +00:00
e71ffec164
Add some basic heap memory bounds protection.
2023-05-21 13:24:00 +00:00
f2f972bb9d
Fix memory leaks in hdoc.
2023-05-15 22:38:52 +00:00
4043285413
Telodendria and all tools now use the Cytoplasm runtime stub.
...
This reduces the amount of manual work programs have to do, and gives us
some free features, like automatic leak reports in all tools.
2023-05-14 22:15:48 +00:00
8021cff122
Make Telodendria use Cytoplasm.
...
This commit removes all the duplicate code and makes Telodendria use the
new Cytoplasm library.
2023-05-14 19:35:23 +00:00
4d9c907b58
Attach device ID to authenticated user.
...
Now RouteWhoAmI can use UserAuthenticate just like the other endpoints.
2023-05-11 03:03:40 +00:00
c1c57fd4cf
Make RandState thread-specific.
2023-05-11 02:17:04 +00:00
31866a14b4
Remove some extraneous whitespace from Util.c, not sure how that got there.
2023-05-07 12:08:26 +00:00
ebc3da9b23
Fix some compile warnings.
2023-05-06 23:06:13 +00:00
a2eec3946c
I missed an instance of strcmp()
2023-05-06 23:02:46 +00:00
0b11b97022
Add StrEquals(), as equality checking is the most common use for strcmp().
...
This allows us to get rid of the hideous MATRIX_PATH_PART_EQUALS macro,
and prevents inconsistent usage of strcmp() (for example, !strcmp() vs
strcmp() == 0).
StrEquals() also has sensible behavior for dealing with NULL strings (it
doesn't just segfault like strcmp()).
2023-05-06 22:34:36 +00:00
0e69a12784
Register route.
2023-05-06 22:06:54 +00:00
2a87583d2f
Add /_matrix/client/v3/account/deactivate
2023-05-06 22:06:23 +00:00
95ceba0645
Add length calculations to JsonEncode() so we can set Content-Length.
2023-05-06 19:23:13 +00:00
bbea55be6c
Document http-debug-server, fixed typo in HttpServer docs.
2023-05-06 18:21:21 +00:00
872fa1aa66
More documentation. It never ends!
2023-04-29 19:52:51 +00:00
e0c94d7bd2
Site now pulls built man pages.
2023-04-29 18:39:01 +00:00
f819093b7d
Don't spew unknown expression warnings if @suppress-warnings is set.
2023-04-29 15:28:42 +00:00
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
a3cc06ff2a
Fix line numbers when parsing multi-line macros.
2023-04-29 15:16:58 +00:00
2d8d5244c4
Document some new headers.
2023-04-29 15:04:16 +00:00
b70c3f0bed
Finish converting all existing documentation. Next up is writing new docs.
2023-04-29 02:54:49 +00:00
71fa96d10d
Format source code.
2023-04-27 20:05:08 +00:00
a00ded6d06
Add support for parsing global variables, not just function declarations.
2023-04-27 20:04:15 +00:00
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
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
24a03ba126
Added some more header documentation.
2023-04-27 18:00:26 +00:00
95cb14213f
Add support for return types that are const, structs, or enums.
2023-04-27 16:02:15 +00:00
6e976a2b8d
Fix line counts on syntax errors.
2023-04-27 15:54:21 +00:00
72467f6503
Begin moving documentation to headers.
2023-04-27 03:08:39 +00:00
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
459b2e856f
Format source code.
2023-04-25 22:13:28 +00:00
96ca9a725d
Finish up capabilities for now.
2023-04-25 22:11:34 +00:00
e1367d5bff
Use snprintf() instead of sprintf().
...
All linker warnings should now be eliminated.
2023-04-25 22:01:58 +00:00
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
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
098eed44a0
Fix bug in MatrixWellKnown(), begin /_matrix/client/v3/capabilities
2023-04-25 18:37:25 +00:00
05cf076ebc
Begin debugging OpenSSL.
2023-04-24 17:05:59 +00:00
a525830b64
Telodendria now responds correctly to SIGTERM.
2023-04-24 16:23:50 +00:00
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
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
737e060243
Finish up Uia fallback.
2023-04-22 15:40:25 +00:00
5431c2cd90
Fix double-free in UiaCleanup().
2023-04-22 13:45:01 +00:00
2bbe13aaf0
Fix error setting up UIA flows.
2023-04-22 02:06:22 +00:00
866343071a
Continued work on UIA fallback.
2023-04-22 00:59:03 +00:00
6a5d89e14b
Work on implementing user interactive authentication fallback.
2023-04-21 02:13:06 +00:00
fb24f93aaa
Fix bug with TLS where cert and key files were used after freeing them.
2023-04-20 21:12:08 +00:00
0b7282c36a
Fix build errors on some compilers due to missing symbols.
2023-04-20 19:19:23 +00:00
ec09882dbe
Fix warnings about memset()
2023-04-20 17:50:22 +00:00
3b28af2031
Fix warning on some compilers.
2023-04-20 17:40:14 +00:00
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
4a5c7480aa
Fix up a few small warnings.
2023-04-20 13:49:25 +00:00
25b7c0d059
Begin documenting Admin API.
2023-04-19 21:45:15 +00:00
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
ae38791df2
Format code, remove dataDir from sample production.conf
2023-04-19 02:07:38 +00:00
0cca38115a
Move configuration to database, add process control API, fix memory leaks.
2023-04-19 00:33:38 +00:00
ff4d265dcc
Registration tokens now determine what privileges a user gets.
2023-04-16 18:32:22 +00:00
582df63a31
Format source code.
2023-04-16 17:51:52 +00:00
4ee66ae3c7
Begin implementing user privileges.
2023-04-16 17:51:03 +00:00
6ca1265076
Begin working on User-Interactive authentication fallback.
2023-04-15 02:36:28 +00:00
e882693c78
Add route for requestToken endpoints.
2023-04-14 23:59:40 +00:00
b21d018daa
Move router building function into a more sensible location.
2023-04-14 21:37:00 +00:00
83971dfaff
Refactor routing system to use HttpRouter.
2023-04-14 21:20:56 +00:00
a90f7c4b9e
Apply #69
2023-04-14 17:50:14 +00:00
1f8df737da
Add HttpRouter API; still have to convert the code to use it.
2023-04-06 01:48:32 +00:00
7c865d06fd
Format code.
2023-04-01 02:46:59 +00:00
e0c8530b12
Clean up http client enough to replace curl in send-patch.
2023-04-01 02:46:07 +00:00
e592840c99
Clean up some HTTP client stuff.
2023-04-01 02:13:41 +00:00
7b3d537175
Remove UtilStreamCopy()
2023-04-01 00:20:18 +00:00
f341fd2b6e
Fix OpenSSL server accept call.
...
Apparently it can EAGAIN on non-blocking connections... I don't think
LibreSSL's TLS library does this, but something to keep in mind if it
doesn't work for somebody.
2023-03-31 23:10:52 +00:00
eef615fc9a
Fix warnings in RouteChangePwd.c
2023-03-28 02:28:58 +00:00
9b21e2460a
Accept #67 : Add the password modification endpoint.
2023-03-28 01:17:47 +00:00
c6f4a4a546
Fix leak of StreamStdout() when logging to a file.
2023-03-27 17:56:45 +00:00
c37d3801b2
Fix warning about uninitialized variable.
2023-03-25 00:00:53 +00:00
a24c27bf4f
Fix leak in TlsOpenSSL.
2023-03-24 17:37:44 +00:00
af776c64a7
Remove duplicate return line.
2023-03-24 14:18:29 +00:00
a25573063f
Fix up TlsOpenSSL a little bit.
...
Server is still broken...
2023-03-24 03:05:12 +00:00
aeb49f80e5
Add support for OpenSSL. This is a good demo of how easy it is to support TLS libraries.
2023-03-24 02:41:01 +00:00
fe32c652cd
Fix bug in HttpClient where it wouldn't retry on EAGAIN.
2023-03-24 00:23:49 +00:00