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
2d1bfd8b74
Define _POSIX_C_SOURCE again.
2022-12-23 22:53:48 +00:00
25dcff06a8
Fix type issues.
2022-12-19 23:25:37 +00:00
72bfa34bcd
Fix overflow on some platforms
2022-12-19 22:25:49 +00:00
b8027e1aaf
Fix compiler warning on some platforms.
2022-12-19 22:21:24 +00:00
94493e6ad8
Add Sha2
2022-12-19 22:15:41 +00:00
88a11650cf
Formatting.
2022-12-19 21:54:01 +00:00
c0bd70a391
Add MatrixUserValidate() and MatrixHistoricalUserValidate()
2022-12-18 20:20:08 +00:00
c15895ae06
Username is technically optional.
2022-12-17 02:12:04 +00:00
70c3d01125
Finish route param and request body validation
2022-12-17 00:08:31 +00:00
f837988156
Begin work on validating registration request.
2022-12-16 22:56:35 +00:00
836b61dc42
Begin implementing a few helper functions
2022-12-16 22:06:01 +00:00
fb06d17b16
Abstract user interactive auth out to function.
2022-12-16 20:08:16 +00:00
7ee31ad36b
Copy diagram from scrap paper into code for clarity.
2022-12-15 22:14:16 +00:00
1273d87df9
Finish user interactive logic (still need to abstract it out)
2022-12-15 22:04:30 +00:00
f475cac601
More validation in user-interactive API
2022-12-15 21:47:08 +00:00
7d8cec8185
Persist session IDs for future calls.
2022-12-15 20:41:56 +00:00
449851a67e
Format code
2022-12-15 20:31:51 +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
cc6ae2dbd3
Prevent directory traversals by replacing dots and slashes.
2022-12-15 16:07:45 +00:00