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
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
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
6a5d89e14b
Work on implementing user interactive authentication fallback.
2023-04-21 02:13:06 +00:00
0b7282c36a
Fix build errors on some compilers due to missing symbols.
2023-04-20 19:19:23 +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
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
e0c8530b12
Clean up http client enough to replace curl in send-patch.
2023-04-01 02:46:07 +00:00
7b3d537175
Remove UtilStreamCopy()
2023-04-01 00:20:18 +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
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
20d41d794b
Fix compile error. I had this in here at some point, not sure where it went.
2023-03-23 17:41:02 +00:00
2441f07848
Add support for spinning up multiple HTTP servers.
...
This is useful for having a TLS and a non-TLS version port, like Synapse.
I verified that the multiple-servers does in fact work as intended,
although the TLS server part is broken; I must be doing something
incorrectly with LibreSSL in setting up the server.
2023-03-23 02:12:45 +00:00
9ec330f40a
Log once we get the response status, not right when we get the request.
2023-03-22 18:13:59 +00:00
fc975e6a93
TelodendriaConfig -> Config
2023-03-22 17:17:30 +00:00
e30fa3ee33
Remove remnants of non-global LogConfig from TelodendriaConfig
2023-03-22 16:31:24 +00:00
e6f3dfad18
Add an ArraySet() method for replacing entries in an array.
...
This is much more efficient than using ArrayDelete() and ArrayInsert(),
and will serve us well in the future.
2023-03-22 16:31:06 +00:00
f3c4c0ac65
Add a global log configuration.
...
This is the easiest and cleanest way to get logging into some of the
fundamental APIs, such as the database and TLS APIs. We don't want to
have to pass logging functions to those, but they can safely use the
global logging configuration.
2023-03-22 14:52:04 +00:00
8782aa046d
Fix compile error in Tls, work on getting certs and keys into HttpServer.
2023-03-22 02:18:31 +00:00
bdaea9872e
Format source code.
2023-03-22 01:46:45 +00:00
b58ca7d22e
Start working on adding TLS support to HttpServer.
2023-03-22 01:46:24 +00:00
6561b5bae1
Add TLS build support to td.
2023-03-22 01:17:42 +00:00
996356832e
Define TLS API, update HttpClient to support optional TLS.
...
Also added a LibreSSL TLS implementation. Client is verified to work;
server has not been tested yet.
2023-03-22 00:41:21 +00:00
5289c16e2b
Convert all code to new Stream API.
...
Also made a number of improvmements to tt, making it compatible with more
shells.
2023-03-18 14:32:09 +00:00
a97a593f21
Format code.
2023-03-16 16:53:18 +00:00
27b3b6cdc6
Add StreamPuts(), don't make StreamVprintf() defer to IoVprintf().
2023-03-16 16:51:41 +00:00
8539a03d5b
Add StreamFile() convenience method.
2023-03-16 16:25:24 +00:00
6ee1857f5f
Format source code.
2023-03-16 12:29:38 +00:00
7d9770fc12
Add some convenience functions for working with Io and Stream.
...
Also broke out IoFd into it's own file, and did the same with IoFile.
2023-03-16 12:28:55 +00:00
65f4c90df3
Rename HttpStream() to HttpServerStream() to match HttpClientStream()
2023-03-16 02:17:48 +00:00
ab4755240a
Add IoCopy() and StreamCopy()
...
Both do buffered reads and writes, but IoCopy() uses IoRead() and
IoWrite() directly, whereas StreamCopy() relies on StreamGetc() and
StreamPutc(), which manipulate the stream buffers.
2023-03-15 17:14:16 +00:00
92da3542a6
Move low-level fopencookie()/funopen() functionality to Io API.
...
The Stream API now provides the buffered I/O functionality analogous to
the C standard library.
2023-03-15 16:47:34 +00:00
5dbaf3c223
Apply #65 , remove printf() in Db, and make tt show login messages.
2023-03-15 13:36:49 +00:00
afc7667737
Begin prototyping Stream API.
2023-03-15 02:40:23 +00:00
ae97d8116c
Apply #64 : Registration tokens.
2023-03-14 00:37:24 +00:00