Commit graph

75 commits

Author SHA1 Message Date
700adf2f7b Impl. cache file lifetime checking
By default cache files are invalidated when the are aged for longer than
1 week. This "timeout-time" can be modified with a paramter/argument.
2024-09-26 12:37:45 +09:00
9459ec9313 Reload config file if cache is older than config
Some checks failed
Run Unit Tests / build-and-run-unit-tests (push) Failing after 6s
2024-09-26 11:51:42 +09:00
037845e501 Sleep in test to ensure changed file timestamp
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m45s
2024-09-25 16:23:04 +09:00
83e4a51985 Impl. html cache (mostly done)
Some checks failed
Run Unit Tests / build-and-run-unit-tests (push) Failing after 4s
TODO: Invalidate cache if it is too old.
2024-09-25 16:12:25 +09:00
a017fccc27 Fix type when setting "extra" var on string part 2024-09-25 13:28:42 +09:00
4e670d24c8 Change StringPart's extra type to uintptr_t 2024-09-25 13:14:01 +09:00
b9e4e3de5f Impl. c_simple_http_cache_filename_to_path(...) 2024-09-25 13:10:44 +09:00
856c205f31 Unescape percent-encoded uri when handling request
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
Resolves #6
2024-09-24 13:16:34 +09:00
fdaaf04600 Use "Connection: close" in response headers
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
The current implementation always closes the connection after sending
the response, so it should notify the client to close the connection.
2024-09-23 19:44:51 +09:00
206cad6f57 Impl. alternate delimeter creating cache-filename
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-23 17:42:02 +09:00
7cc0d624be Fix use-after-free in path-to-filename function
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-23 15:10:39 +09:00
abc61a5504 Impl. path-to-cache-filename, fixes to strip-path
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-23 14:58:28 +09:00
0956ae165e Refactor http_template to use String_Part
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 9s
2024-09-23 14:09:25 +09:00
f8b2f63554 Fix potential memory leak
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
Fixes #5
2024-09-22 19:09:07 +09:00
8974c7b31f Add WIP html_cache
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-22 15:44:04 +09:00
6f845a7185 Add helper to create string parts and combine them 2024-09-22 15:39:35 +09:00
6d5a1d1bdd Minor fix
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-22 14:43:28 +09:00
ffc8e99f73 Add new arg for program: --enable-cache-dir=<DIR> 2024-09-22 14:42:41 +09:00
7a8582faac Change template generation: output used filenames 2024-09-22 14:26:07 +09:00
1416a47e87 Use volatile for global variables
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m26s
These globals are accessed in signal handling, so they need to be
volatile.

Resolves #4
2024-09-21 14:41:02 +09:00
1deec0c564 Update globals to use "fast" int type
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-21 12:02:18 +09:00
13ccc1b3bd Use stdint.h types instead of int, long, etc.
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-20 21:45:51 +09:00
47d7f0396d Add tests for c_simple_http_strip_path(...)
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m30s
2024-09-16 12:04:21 +09:00
f15452baa4 Fix case where URL has extra trailing '/'
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-16 11:20:15 +09:00
371c180cc7 Minor fix
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-12 14:55:51 +09:00
b22556ec6f Cleanup: removed unused pointer in internal struct
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-09-10 21:44:10 +09:00
051be910f3 Fix potential "strlen(NULL)"
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 38s
2024-09-10 21:18:10 +09:00
57c0812c24 Minor refactoring/fixes
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 38s
2024-09-10 19:22:47 +09:00
a56adb171f Minor refactoring
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 39s
2024-09-10 18:01:45 +09:00
5303bbe5fd Minor refactoring
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 39s
2024-09-10 15:39:16 +09:00
7fec8cc071 Make config reloading more robust
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
2024-09-10 15:34:26 +09:00
bf7bfe5c86 Impl. hot reloading of config and on SIGUSR1
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 40s
Resolves #2
2024-09-10 13:55:16 +09:00
bc879408fe Fix "unfixed" "count" from previous commit
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
2024-09-09 17:01:41 +09:00
615a3e95e5 Fix typo when returning 500 error
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
2024-09-09 16:59:46 +09:00
952808aefc Minor fixes/cleanup
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 5s
2024-09-09 13:53:58 +09:00
3bace3286f Refactor "print request headers"
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
Resolves #1
2024-09-09 12:41:15 +09:00
2791714f2c Update third-party submodule SimpleArchiver
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 3s
Also fixes related to the updated third-party submodule.
2024-09-09 11:32:05 +09:00
9294108f13 Impl. print of specific headers arg/option
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
TODO: Maybe refactor this to use a hash-map or something similar to
speed up the process. If N = number-of-headers-to-print and M =
size-of-request-buffer, then currrently this will take O(N*M) time.
2024-09-06 17:30:37 +09:00
fcad980593 Add flag to disable peer address printing
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 33s
Minor teak in main to make Args const.
2024-09-06 16:40:36 +09:00
274f0af887 Debug print only in Debug builds 2024-09-06 16:32:47 +09:00
c9c21105f6 Only allow protocol "HTTP/1.1"
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 33s
2024-09-06 15:57:46 +09:00
c194555527 Add support for different error responses 2024-09-06 15:55:21 +09:00
42d97e03b3 Remove "?" or "#" starting suffixes from path
These suffixes may break loading the correct html template.
2024-09-06 15:33:31 +09:00
21f3a3a103 Fix warnings
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
2024-09-06 13:43:25 +09:00
a9864542b3 Add README.md, ensure listening port is printed
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
2024-09-06 13:11:00 +09:00
d89117430d Minor tweaks/fixes
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 32s
Add example config using "_FILE" variables.

Increase limit of config value size from 256 to 1024.
2024-09-06 12:49:32 +09:00
2d215b4a4e Fix invalid read when checking for "_FILE" vars
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 31s
2024-09-06 12:03:03 +09:00
bcb4c3c711 Minor tweak to listening port info output
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 32s
2024-09-06 11:56:52 +09:00
9be6ac32bf Impl. handling HTTP/1.1 requests
TODO:
    Handle errors other than 404 Not Found.
2024-09-06 11:56:00 +09:00
dd5934351e Fix inconsistent http_template output size
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2s
2024-09-05 16:18:28 +09:00