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
d999ec059e
Update README.md
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
Run Unit Tests / build-and-run-unit-tests (push) Successful in 2m0s
2024-10-30 14:42:27 +09:00
1907469ee0
Update README.md
2024-10-30 14:42:00 +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
bce64a14f1
Update README.md
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m55s
2024-09-26 16:33:07 +09:00
3f1be0cf49
Update README.md
Run Unit Tests / build-and-run-unit-tests (push) Successful in 33s
2024-09-26 13:04:58 +09:00
8a5195d5c4
Merge branch 'dev'
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 20s
Resolves #3
2024-09-26 12:59:27 +09:00
aef990f341
Update README.md
Run Unit Tests / build-and-run-unit-tests (push) Successful in 21s
2024-09-26 12:38:51 +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
c4eff1cbaa
backport: Fix type set "extra" var on string part
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-25 13:29:13 +09:00
a017fccc27
Fix type when setting "extra" var on string part
2024-09-25 13:28:42 +09:00
8a2dd6770a
backport: StringPart's extra type to uintptr_t
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m29s
2024-09-25 13:18:06 +09:00
07153f3588
Update example config
Run Unit Tests / build-and-run-unit-tests (push) Successful in 9s
2024-09-25 13:16:22 +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
8eb0578454
backport: "Connection: close" in response headers
...
Run Unit Tests / build-and-run-unit-tests (push) Successful in 9s
The current implementation always closes the connection after sending
the response, so it should notify the client to close the connection.
2024-09-24 14:57:29 +09:00
f22a523b45
backport: remove extra '/' in URI, config changes
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-24 14:53:28 +09:00
570da15dab
backport: unesc. percent-encoded uri, string parts
...
Resolves #6
2024-09-24 14:29:46 +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
abc61a5504
Impl. path-to-cache-filename, fixes to strip-path
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
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
...
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
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
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
55d3a61c0c
Update .gitignore
2024-09-22 14:26:50 +09:00
7a8582faac
Change template generation: output used filenames
2024-09-22 14:26:07 +09:00
f63e96f63d
Update third-party submodule SimpleArchiver
Run Unit Tests / build-and-run-unit-tests (push) Successful in 1m25s
2024-09-21 18:46:21 +09:00
1416a47e87
Use volatile for global variables
...
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
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-21 12:02:18 +09:00
2ec617e170
Update third-party submodule SimpleArchiver
Run Unit Tests / build-and-run-unit-tests (push) Successful in 7s
2024-09-21 11:59:05 +09:00