Commit graph

168 commits

Author SHA1 Message Date
2d485a3824 Version 1.4
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 3s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
Build for Releases / push-build-x86_64 (push) Successful in 6s
Build for Releases / push-build-aarch64 (push) Successful in 17s
Build for Releases / push-build-x86_64_debian (push) Successful in 36s
Build for Releases / push-build-aarch64_debian (push) Successful in 5m29s
2024-11-21 14:14:09 +09:00
3fc301cde5 Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
2024-11-21 14:06:09 +09:00
82693bfa3e Ensure http_template.c keeps track of _FILE files 2024-11-21 14:05:33 +09:00
e6e9fc16af More testing of nested FOREACH in example_config
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m10s
2024-11-20 17:12:10 +09:00
fddc43f36b More notes about FOREACH in Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 23s
2024-11-20 16:21:28 +09:00
10bf88ec3e Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 25s
2024-11-20 16:16:25 +09:00
20f413c8d9 Impl. nested FOREACH expressions
All checks were successful
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
All checks were successful
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
Some checks failed
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
All checks were successful
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
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m7s
2024-11-18 17:41:26 +09:00
ba1c692e2f Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 23s
2024-11-18 17:10:41 +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
08769d026e Update third-party submodule SimpleArchiver
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
2024-11-15 17:42:26 +09:00
2c82b82b06 Allow "multi-valued-key-entries" in ParsedConfig
All checks were successful
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
35aa5fc5a3 Update Changelog.md, Bump version 1.3
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 4s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 22s
Build for Releases / push-build-x86_64 (push) Successful in 6s
Build for Releases / push-build-aarch64 (push) Successful in 1m11s
Build for Releases / push-build-aarch64_debian (push) Successful in 5m25s
Build for Releases / push-build-x86_64_debian (push) Successful in 28s
2024-11-14 10:41:43 +09:00
6e9f0709b4 Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
2024-11-12 17:26:33 +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
1b683f3395 Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-11-12 17:18:21 +09:00
33be6c49fd Fix erronous buffer declaration 2024-11-12 17:16:58 +09:00
cdacfc106d Add strip --strip-unneeded to debian builds (ci)
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 3s
Build for Releases / push-build-x86_64 (push) Successful in 6s
Build for Releases / push-build-aarch64 (push) Successful in 1m12s
Build for Releases / push-build-x86_64_debian (push) Successful in 33s
Build for Releases / push-build-aarch64_debian (push) Successful in 2m5s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-11-12 13:49:19 +09:00
600d558b11 Update README.md
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 4s
Build for Releases / push-build-x86_64 (push) Successful in 9s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 24s
Build for Releases / push-build-aarch64 (push) Successful in 1m12s
Build for Releases / push-build-x86_64_debian (push) Successful in 37s
Build for Releases / push-build-aarch64_debian (push) Successful in 5m32s
2024-11-12 12:06:21 +09:00
b155934701 Update Changelod.md, version 1.2 2024-11-12 12:04:36 +09:00
4784f83234 Impl. copying over "static-dir" files on generate
All checks were successful
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
All checks were successful
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
All checks were successful
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>
All checks were successful
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>
All checks were successful
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
0d552d2cb0 Version 1.1
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 1s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
Build for Releases / push-build-x86_64 (push) Successful in 6s
Build for Releases / push-build-aarch64 (push) Successful in 1m8s
Build for Releases / push-build-x86_64_debian (push) Successful in 34s
Build for Releases / push-build-aarch64_debian (push) Successful in 5m9s
2024-11-08 15:20:08 +09:00
e1dde1576a Update Changelog.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 19s
2024-11-08 14:37:54 +09:00
1cb593e155 Allow key/value buffers to be dynamically sized
All checks were successful
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
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m56s
Resolves #9
2024-11-08 14:00:36 +09:00
80b1d49e74 Add Changelog.md
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 0s
Build for Releases / push-build-x86_64 (push) Successful in 7s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m2s
Build for Releases / push-build-aarch64 (push) Successful in 1m13s
Build for Releases / push-build-x86_64_debian (push) Successful in 31s
Build for Releases / push-build-aarch64_debian (push) Successful in 4m55s
2024-11-07 13:34:06 +09:00
53b3974d58 Fix invalid "closedir(...)" on NULL ptr 2024-11-07 13:30:59 +09:00
81c1123b7f Add build_releases.yaml action/workflow
All checks were successful
Build for Releases / ensure-release-exists (push) Successful in 1s
Run Unit Tests / build-and-run-unit-tests (push) Successful in 24s
Build for Releases / push-build-x86_64 (push) Successful in 8s
Build for Releases / push-build-aarch64 (push) Successful in 1m13s
Build for Releases / push-build-x86_64_debian (push) Successful in 34s
Build for Releases / push-build-aarch64_debian (push) Successful in 5m10s
2024-11-07 13:25:34 +09:00
a27930de85 Minor refactoring
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
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
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-10-30 15:52:27 +09:00
d999ec059e Update README.md
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-10-30 15:41:56 +09:00
d30a074199 Move test static file to "example_static_dir/" 2024-10-30 15:41:07 +09:00
83166635d0 Update third-party submodule SimpleArchiver
All checks were successful
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-10-30 14:42:27 +09:00