c78dc3bd31
Fix a memory bug in StrRandom() with RandIntN().
...
We're storing integers in this buffer, so we have to allocate enough
memory for them. An integer is usually more than one byte.
2023-02-16 13:10:09 +00:00
38438c297e
Looks like Matrix v1.6 is out.
2023-02-16 02:09:57 +00:00
85380efa3c
[ #48 ] Fix bug in MatrixGetAccessToken()
2023-02-16 01:33:46 +00:00
6a593ab8a0
[ #48 ] Add Rand API and make StrRandom() use it.
2023-02-16 00:31:13 +00:00
f7d581538d
Begin documenting Str.
2023-02-14 11:56:22 +00:00
5fef788053
Begin documenting User API
2023-02-12 02:31:14 +00:00
2443c91bba
Fix bug in HashMap that would allow iterating over deleted values.
2023-02-11 00:15:49 +00:00
8b8873103d
Handle standard library quirks of non-conforming systems and compilers.
2023-02-05 14:20:12 +00:00
dc972385ea
Don't shadow variables.
2023-02-05 14:19:07 +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
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
1e02971a7e
Implement login route.
2023-01-17 00:02:50 +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
121682c006
Implement user login.
2023-01-16 21:17:44 +00:00
bd88c01c26
Don't read the timestamp after it's freed.
2023-01-16 03:57:01 +00:00
c0309c1ea8
Fix memory leak when log timestamp is not set in the config.
2023-01-16 03:21:59 +00:00
a4364dbb68
Fix use after free.
2023-01-10 00:38:47 +00:00
599fa1a740
Document MemoryHexDump() and DbExists()
2023-01-09 21:39:59 +00:00
b8ce4c9239
Lock database in DbExists() to prevent race conditions.
2023-01-09 19:25:49 +00:00
c5bce0b14f
Apply #43 with modifications.
2023-01-09 19:22:09 +00:00
1421c478fd
Fix bug where malformed requests cause Db locks that are never unlocked.
2023-01-09 19:16:12 +00:00
90a74c3b0a
Don't accept connections if the connection queue is full.
2023-01-09 17:44:12 +00:00
1d9ed5dcbf
Fix invalid read in HttpParamDecode().
2023-01-09 15:48:56 +00:00
9358264add
Fix some invalid write errors.
2023-01-09 15:18:59 +00:00
30c3690287
Renamed String.h to Str.h because Windows is dumb.
2023-01-08 04:38:06 +00:00
56105c8a61
Fix logic error
2023-01-07 18:24:16 +00:00
f365f94389
Define User struct.
2023-01-07 16:15:11 +00:00
08b36c071c
Begin prototyping User.h
2023-01-07 15:51:56 +00:00
0f661f435f
Whoops, forgot to update the header.
2023-01-07 04:40:12 +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
8323eb38c9
Make UtilRandomString() more secure.
...
Two ways this is more secure:
1. The seed is only generated once, not every time the function is called.
2. All threads share the same seed, which means timing attacks aren't
possible.
Because we are using a mutex, performance may suffer slightly.
2023-01-07 00:18:44 +00:00
ea1828e95e
Fix warning in RouteRegister.c
2023-01-06 21:54:33 +00:00
7bda319f39
Format code
2023-01-06 21:18:44 +00:00
1282371680
Fix "bad pointer" warnings.
2023-01-06 18:50:31 +00:00
8e2399e648
Fix bug on some platforms that use unsigned characters.
2023-01-02 18:22:04 +00:00
d969f4d053
Fix visual bugs in MemoryHexDump()
2023-01-02 04:12:12 +00:00
5c5aab71d8
Fix bug in UserInteractiveAuth()
2023-01-02 03:56:27 +00:00
e9aebab221
Move hex dump logic to Memory API.
2023-01-01 22:10:23 +00:00
d9d88eb028
Periodically purge old user interactive auth sessions.
...
Keeping them around is going to take up a lot of storage. If it takes more
than a half hour for a client to complete the auth, make him start over.
2022-12-28 15:52:19 +00:00
fbd7bf5944
Fix memory leak in DbDelete()
2022-12-28 15:44:21 +00:00
1a43ea6470
Fix bugs in Cron
2022-12-26 16:28:58 +00:00
3c8d89a52e
Update copyright year
2022-12-26 15:52:52 +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
4f48f9a5cc
Document Cron
2022-12-24 23:07:46 +00:00
c18a9a96e6
Add job scheduler.
...
This will be used for expiring sessions and tokens, among other things that
need to happen periodically.
2022-12-24 21:49:37 +00:00
be2e267064
Turns out I don't need to do that.
2022-12-24 01:31:22 +00:00
61e9cdbea3
Check INT_WIDTH and LONG_WIDTH... stupid GNU libc.
2022-12-24 01:00:36 +00:00
eeabe93e3f
Revert using _POSIX_C_SOURCE.
...
It didn't fix the issue.
2022-12-24 00:51:49 +00:00