Commit graph

182 commits

Author SHA1 Message Date
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
62cd1cdc98 Misc changes. 2023-03-12 03:37:57 +00:00
3037f12907 Add tt and http-debug-server tools. 2023-03-10 18:48:52 +00:00
2d9b706f38 Fix I/O in JsonConsumeWhitespace() and UtilStreamCopy().
These functions previously operated on the assumption that fgetc() would
block; however it will not block on HttpServer streams because those are
non-blocking. They now check error conditions properly before failing
prematurely.
2023-03-10 18:46:03 +00:00
8ead9cc93a Apply #63, make some general bug fixes. 2023-03-10 03:24:04 +00:00
3af2d3d12b Format code, update TODO items. 2023-03-09 03:35:40 +00:00
ca053a12b1 Break out main() into Main.c, fix some compile warnings on Cygwin. 2023-03-09 02:46:04 +00:00
c32c3abfd6 Update TODO 2023-03-09 00:10:32 +00:00
efdf168085 Allow encoding user-provided strings. 2023-03-08 20:31:49 +00:00
50e599f1cd Implement a mostly-functional query language for JSON. 2023-03-08 19:49:06 +00:00
7b22fb02a2 Implement pretty-printing option in Json.
Telodendria itself doesn't use it, but the json CLI tool does.
2023-03-08 17:15:43 +00:00
cb8c4fceb5 Begin working on JSON CLI tool.
This is a similar situation to the HTTP CLI tool: since we have the
Json API anyway, we might as well have a little command line tool to
replace jq.
2023-03-08 04:06:43 +00:00
19e89110cd Bump version number to v0.3.0 2023-03-08 03:46:38 +00:00
8d75d8a023 Add simple HTTP CLI tool that uses the HttpClient API.
You might be asking why I would just write a simple curl replacement
when curl does the job just fine. Well, the most immediate reason is
to test the HttpClient API, but since Telodendria's goal is to not
be dependent on any third-party code if at all possible, it makes
sense to have a simple HTTP client to use not only for testing
Telodendria, but also for configuring it. When we move the
configuration to the database, we'll ship a script that uses this
tool to allow admins to easily submit API requests.

Do not be concerned that HttpClient does not support TLS yet. TLS
support is necessary for federation to work, so it is coming
eventually.
2023-03-08 03:30:36 +00:00
7e144ae488 Clean up a few bugs in HttpClient and Uri 2023-03-08 02:53:47 +00:00
313f0e2e73 Add HttpClient API 2023-03-07 23:10:06 +00:00
cfba96edee Prepare for v0.2.0 release. 2023-03-07 00:44:53 +00:00
04bf8ca1a1 Document Uia API. 2023-03-07 00:28:52 +00:00
f2c2888c87 Document DbList() and DbListFree() 2023-03-06 22:29:46 +00:00
f1e565ef7b Update Json man page. 2023-03-06 22:21:56 +00:00
0ac21d430a Document User API 2023-03-06 22:09:57 +00:00
c8c4c705a5 Convert proposals to man pages. 2023-03-04 20:26:16 +00:00
0cbdb5f615 Multi-stage flows should theoretically work now. 2023-03-04 01:53:33 +00:00
e4ec250d8f Apply modified #57: Implement logout all. 2023-03-03 22:49:37 +00:00
97990c5009 Get some more of my thoughts in the TODO file. 2023-03-03 18:56:36 +00:00
5d590df83d Remove DB_MIN_CACHE because that's dumb.
You should be able to totally disable the cache if you so please. This
should ensure Telodendria uses less memory on constrained systems.
2023-03-03 14:26:10 +00:00
7a951c980f Cleanup old user interactive auth sessions. 2023-03-01 19:52:44 +00:00
8c4e6aa594 Implement DbList() 2023-03-01 19:33:25 +00:00
ce6d483135 Implement static login page. 2023-03-01 19:03:42 +00:00
63634407d4 Update TODO.txt, add stub functions in Db. 2023-02-28 18:44:02 +00:00
36169181dd Build basic framework for creating static pages.
The login fallback, as well as the user-interactive authentication
fallbacks, are static HTML pages.
2023-02-28 16:51:40 +00:00
fae9eb4473 Implement password-based user interactive authentication. 2023-02-28 15:17:11 +00:00
d89e3fd753 Update TODO 2023-02-27 17:25:39 +00:00
7703405c70 Fix bugs in Json API. 2023-02-26 15:07:46 +00:00
31be432f7a Just discovered some bugs in Json. 2023-02-25 16:35:33 +00:00
d517b66316 Also delete refrsh token if present for device. 2023-02-24 01:06:02 +00:00
b60cac53e5 Make JsonValueString() call StrDuplicate(); refactor code to behave properly. 2023-02-24 00:17:56 +00:00
8c96fd8d7d Begin the great StrDuplicate() refactor. 2023-02-23 23:19:23 +00:00
41421557e0 Update TODO. 2023-02-23 16:46:27 +00:00
4f562167f6 Update TODO 2023-02-23 16:20:15 +00:00
3bbff5379f [WIP] Replace UserInteractiveAuth with a new Uia API.
Uia is a lot less characters to type. Do note that this API is far from
complete and this commit breaks user interactive authentication entirely.
2023-02-19 14:58:56 +00:00
3faee8b432 Update TODO items. 2023-02-17 15:03:59 +00:00
ff879e715f Finish implementing token refresh.
This implementation just keeps the refresh token and only updates the
access token. The spec says that this is allowed. There's really no
reason to do this, other than the fact that it's easier.
2023-02-17 03:20:49 +00:00
72405a94f6 Add JsonGet(), JsonSet(), and JsonCreate() for convenience. 2023-02-16 18:49:19 +00:00
cebc2959cc Fix a few things that were bothering me. 2023-02-15 21:53:39 +00:00
a7c1ccd3f1 Update lots of documentation. 2023-02-15 01:32:44 +00:00
653d282bcd Document User API. 2023-02-14 02:02:22 +00:00
5b77236e82 Fix -v option 2023-01-17 21:38:39 +00:00
e0f7c133d1 Add a non-JSON landing page. This is the basis for other HTML pages. 2023-01-17 20:29:16 +00:00
4e742d5179 Define project timeline a little more. 2023-01-17 19:05:26 +00:00
70fd61cd23 Bring change log up to date-ish.
Next release I'll try to stay on top of this more.
2023-01-17 17:39:31 +00:00
056804810f Fix man page links on website. 2023-01-17 13:53:31 +00:00
b0b2f11158 Refactor endpoint authentication flow.
Instead of one MatrixAuthenticate() function, we'll do
MatrixGetAccessToken(), and then UserAuthenticate(). This allows us to
give different error messages depending on what the user provided and what
the server state is.
2023-01-17 01:36:22 +00:00
cc95c10f44 Move client well-known generation to MatrixClientWellKnown() function.
We'll be using this for client login.
2023-01-16 22:02:08 +00:00
599fa1a740 Document MemoryHexDump() and DbExists() 2023-01-09 21:39:59 +00:00
c5bce0b14f Apply #43 with modifications. 2023-01-09 19:22:09 +00:00
80ff232af9 Update TODO 2023-01-08 04:39:01 +00:00
08b36c071c Begin prototyping User.h 2023-01-07 15:51:56 +00:00
0a29aa7f5a Move string related functions to a new String API.
I think we have accumulated enough string functions that they should
have their own API. This shortens the function names a bit too.
2023-01-07 04:33:32 +00:00
2ce09f8632 Convert UtilStringConcat() into a varargs function.
This allows us to concatenate an arbitrary amount of strings without
having to maintain a bunch of pointers or leak memory when nesting calls.
2023-01-07 03:17:06 +00:00
0c807d0f22 Cross an item of TODO 2023-01-07 00:42:11 +00:00
c63715c2e7 Update TODO 2023-01-06 21:17:55 +00:00
e9aebab221 Move hex dump logic to Memory API. 2023-01-01 22:10:23 +00:00
c9e42ff813 Break out UserInteractiveAuth into its own header.
We'll need this because user interactive auth will get complicated and
messy very soon.
2022-12-26 15:48:21 +00:00
94493e6ad8 Add Sha2 2022-12-19 22:15:41 +00:00
f32e5eafce This release is getting too big to be 0.1.1 2022-12-18 20:11:32 +00:00
f837988156 Begin work on validating registration request. 2022-12-16 22:56:35 +00:00
fb06d17b16 Abstract user interactive auth out to function. 2022-12-16 20:08:16 +00:00
f475cac601 More validation in user-interactive API 2022-12-15 21:47:08 +00:00
bee07d90fc Fix memory leaks in database. 2022-12-15 20:29:19 +00:00
c3618488f2 Hexdump leaked memory to the log for debugging. 2022-12-15 20:18:12 +00:00
4f2f7cd966 Add random string generator 2022-12-15 03:41:59 +00:00
c8cd2cebb7 Implement DbDelete() 2022-12-15 02:39:58 +00:00
abb4a9cf20 More work on registration endpoint. 2022-12-15 01:48:49 +00:00
26fffe6a09 Remove v0.1.0 milestone 2022-12-13 19:34:11 +00:00
58eb666f53 Document HttpServer 2022-12-13 14:06:18 +00:00
bd8804e6fc Document Http 2022-12-13 13:24:47 +00:00
0633a86469 Remove finished items. 2022-12-12 22:33:53 +00:00
e17b64dcb2 Document Routes 2022-12-12 17:34:59 +00:00
e7030ec57a Document Matrix.h 2022-12-12 16:59:13 +00:00
323dad1f8b Document TelodendriaConfig 2022-12-10 23:34:32 +00:00
fb5a8e4587 Convert configuration file to JSON 2022-12-09 23:57:30 +00:00
c0534b0e05 Add some more detail to TODO.txt 2022-12-06 21:59:06 +00:00
01a6d71101 Remove Constants.h 2022-11-30 18:30:39 +00:00
5771e615d7 Document CanonicalJson 2022-11-30 18:23:25 +00:00
5610cafe46 Document Json 2022-11-30 17:54:10 +00:00
27da9ed88f Document Memory API 2022-11-29 01:56:34 +00:00
643bdb2ec7 Document send-patch 2022-11-27 14:30:52 +00:00
889a16856d Add Db(3) 2022-11-26 20:39:47 +00:00
8045c583ba Write man page for Log 2022-11-25 16:40:47 +00:00
70bdf81df7 Fix references to old LOG_ constants 2022-11-24 18:51:07 +00:00
21d97656e8 Update TODO items; refactor some milestones. 2022-11-21 21:18:00 +00:00
fe29b9f848 Remove unit testing code.
Until I can do it properly, I don't want to do it at all.
2022-11-18 22:27:23 +00:00
045c6d8644 Cache eviction 2022-11-18 20:42:08 +00:00
e7ad166877 Fix some memory leaks in Db 2022-11-18 19:36:15 +00:00
8c36efa1d0 Add item to TODO.txt 2022-11-11 01:10:16 +00:00
6776db5ff9 Accept #33 2022-11-11 01:07:49 +00:00
c7a358150c Update documentation 2022-11-08 17:56:11 +00:00