16154393d0
Fix edge case of IF with FOREACH variable
2024-11-29 11:38:10 +09:00
d6edaa3bdd
Use proper format constants for size_t/uintX_t etc
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
2024-11-25 16:01:49 +09:00
a467cceb90
Add separate flag for generate-static overwrite
...
Previous implementation allowed static files to overwrite existing files
on generate if static-dir was specified and generate-enable-overwrite
was specified. Now, an additional flag
"--generate-static-enable-overwrite" determines if static-dir files
overwrite on generate.
2024-11-25 14:17:32 +09:00
82693bfa3e
Ensure http_template.c keeps track of _FILE files
2024-11-21 14:05:33 +09:00
20f413c8d9
Impl. nested FOREACH expressions
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 37s
IF/ELSEIF/ELSE/ENDIF and FOREACH/ENDFOREACH can now be nested in each
other in HTML templates.
TODO: Cleanup/refactorings, properly set up "files_map".
2024-11-20 16:12:58 +09:00
5e2ae5f87b
Fix Unit Tests whilst keeping FOREACH working
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-11-19 21:26:42 +09:00
d46a323b15
Impl. FOREACH and NOTFOREACH
...
Run Unit Tests / build-and-run-unit-tests (push) Failing after 4s
TODO: Figure out nested FOREACH or abandon that feature.
2024-11-19 20:53:11 +09:00
e9de2682f6
Refactoring related to {{{!IF}}}...
2024-11-19 15:07:40 +09:00
12a1edc897
Allow nested {{{!IF}}}...
, fixes
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-11-18 20:10:45 +09:00
63a5eca63c
Fix memory leak for array variables
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m7s
2024-11-18 17:41:26 +09:00
8da223461d
Impl. extension of template delimeter expressions
...
Implemented "IF", "ELSEIF", "ELSE", "ENDIF", and "INDEX" for templates.
IF is used like: `{{{!IF Variable==SomeString}}}`.
ELSEIF is used like: `{{{!ELSEIF Variable==AnotherString}}}`.
ELSE is used like: `{{{!ELSE}}}`.
ENDIF is used like: `{{{!ENDIF}}}`.
INDEX is used like: `{{{!INDEX ArrayVar[2]}}}`.
2024-11-18 17:07:07 +09:00
d9d286c53f
Refactor template handling
...
Split off some code into separate function to be updated for support for
more template features.
2024-11-18 13:11:13 +09:00
2c82b82b06
Allow "multi-valued-key-entries" in ParsedConfig
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 25s
This commit begins work on adding more templating features.
2024-11-15 16:28:31 +09:00
b056a8f99d
Add missing NULL check in arg_parse.c
...
Previous implementation didn't crash because `closedir(...)` is lenient.
2024-11-12 17:25:52 +09:00
33be6c49fd
Fix erronous buffer declaration
2024-11-12 17:16:58 +09:00
4784f83234
Impl. copying over "static-dir" files on generate
Run Unit Tests / build-and-run-unit-tests (push) Successful in 34s
2024-11-11 15:09:12 +09:00
37e0c3a98b
Remove unused parameter in function in config.c
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
2024-11-10 21:09:55 +09:00
0bbe280e1f
Cleanup by separating "generate" to source files
2024-11-10 21:06:41 +09:00
faa262ba95
Check if fopen() fails during generating html
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-11-10 20:47:56 +09:00
68551de565
Fix typo in impl. of --generate-dir=<DIR>
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-11-10 20:45:37 +09:00
de2d15033e
Impl. --generate-dir=<DIR>
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
Also added flag `--generate-enable-overwrite`.
Resolves #11
2024-11-10 20:39:49 +09:00
1cb593e155
Allow key/value buffers to be dynamically sized
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
Fixes #10
2024-11-08 14:32:57 +09:00
95aef64618
Refactor config.c to change c-macros to functions
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m56s
Resolves #9
2024-11-08 14:00:36 +09:00
53b3974d58
Fix invalid "closedir(...)" on NULL ptr
2024-11-07 13:30:59 +09:00
a27930de85
Minor refactoring
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m1s
Accept connections until there are no more connections to accept in a
single iteration.
2024-11-06 14:47:47 +09:00
9ff991d907
Minor refactorings
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-11-04 16:25:19 +09:00
5a9cdb33c4
Fix possible double-close of connection fd
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-11-04 15:40:25 +09:00
fef2d154ce
Handle multiple connections simultaneously
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m2s
This commit changes the implementationt to store connected clients
file-descriptors and to iterate through them all periodically to handle
requests and to time-out stale connections. This means that even if one
connection is in progress, the program can still handle new connections
from other clients.
Note this does this not by threads but by taking advantage of
non-blocking io to handle each connection.
Fixes #8 .
2024-11-04 15:25:27 +09:00
d4b3c3af8b
Refactor static_validate_path
Run Unit Tests / build-and-run-unit-tests (push) Successful in 19s
2024-11-03 18:20:26 +09:00
1b7c73f12f
Add timeout to incoming connections
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-11-03 18:11:50 +09:00
76ec53dfb0
Fix free'd buf not being set to NULL
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m2s
2024-11-03 17:55:09 +09:00
a14355ac81
Fix potential invalid path when fetching static
2024-11-03 17:54:55 +09:00
c77f8cdb96
Properly handle 404 when checking static-dir
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-10-30 15:52:27 +09:00
8d2e5f52a4
Fix test crashing if "xdg-mime" did not exist
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-10-30 14:29:03 +09:00
67f59e1354
Add option --enable-static-dir=<DIR>, use static
Run Unit Tests / build-and-run-unit-tests (push) Failing after 55s
2024-10-30 14:17:49 +09:00
fe0f87614d
Update c_simple_http_get_file(...) in static.c
...
Add option to not fetch mime-type and default to
"application/octet-stream".
2024-10-30 13:24:36 +09:00
86bfb5aa91
Add enum for result info when getting static file
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-10-29 14:56:52 +09:00
c952d1e06b
Close read-pipe on xdg-mime's side in static.c
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
The pipe probably doesn't need to be closed since it is closed by
c_simple_http and the forked process stops while it is the only other
thing with that read-pipe-fd. However, it probably would be best to
close it so that during runtime all pipe fd's are closed after use.
2024-10-29 13:45:38 +09:00
574499252e
Work on fetching static file and mime-type
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-10-29 12:46:14 +09:00
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
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
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)
...
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
...
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
...
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
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
Run Unit Tests / build-and-run-unit-tests (push) Successful in 8s
2024-09-23 15:10:39 +09:00