André Kugland
defc1e8ce9
Custom headers with the CLI option --header
( #28 )
...
These changes add a command-line option --header, e.g. --header 'Access-Control-Allow-Origin: *'.
Basic tests are included for this option.
When accepting the argument, a very simple sanitization is made, the string is required to contain ": ", and can’t contain a '\n' character. These checks are far from what is required to truly validate a HTTP header, but will at least detect simple mistakes and forbid the abuse of having arguments that include more than one header, or, worse, that include a body for the response (after "\r\n\r\n").
This should also close the Issue #16 and PR #27 , I think, since CORS functionality can be obtained by specifying a custom header.
2022-12-06 21:46:52 +11:00
Emil Mikulic
64b03a032e
open_sockets.py: remove unused import.
2022-11-23 11:18:39 +11:00
Emil Mikulic
a88ecadafe
fuzzer: take optional port number from environment variable.
...
Makes it possible to run multiple fuzzer processes in parallel.
2022-10-02 12:24:17 +11:00
Emil Mikulic
762956f1a8
Set running = 1 before entering the main loop.
...
This is so the fuzzer can wait for it.
2022-10-02 12:21:33 +11:00
Emil Mikulic
1eb6daa357
Fix crash when a file has a large (year 10,000+) mtime.
...
https://bugzilla.redhat.com/show_bug.cgi?id=1893725
https://github.com/emikulic/darkhttpd/issues/21
2022-10-02 11:50:02 +11:00
Emil Mikulic
1f166293b7
Update tests after adding slash to href for directories.
2022-10-02 11:38:12 +11:00
Emil Mikulic
1e4cddb6b6
Disable msan because it's not working.
...
It looks like parts of dlent are not being unpoisoned.
2022-10-02 11:34:56 +11:00
Emil Mikulic
3641c2f50f
Dir listing: special-case ".." to come first.
...
Suggested by: @frogtile
Fixes #14
2022-01-19 20:10:50 +11:00
Emil Mikulic
f0ca481fd1
Make header parsing case insensitive.
...
This makes darkhttpd more useful behind an HTTP2 reverse proxy,
because the HTTP2 headers are all lowercase.
Suggested by: @Hill-98
Fixes #15
2022-01-19 20:01:32 +11:00
Emil Mikulic
1759a7a7d9
Add tests for --forward-https.
2021-08-22 13:18:36 +10:00
Emil Mikulic
9222bbc9d8
Improve make_safe_uri coverage.
2021-03-21 15:31:04 +11:00
Emil Mikulic
f3acb93b93
fuzz_llvm_make_safe_uri: get code from darkhttpd.c
2021-03-21 15:13:44 +11:00
Emil Mikulic
02b9908f71
Retire old developer scripts.
2021-03-21 15:06:57 +11:00
Emil Mikulic
d576efc9d8
warns: build with -std=c90.
2021-03-21 15:01:17 +11:00
Emil Mikulic
505223a9e5
Clean up after fuzzers.
2021-02-21 17:10:18 +11:00
Emil Mikulic
dc0fd7ecdc
Don't include URL or method in default_reply.
2021-02-21 17:09:27 +11:00
Emil Mikulic
dd49204609
Add a fuzzer that runs the server in the background.
2021-01-18 00:25:02 +11:00
Emil Mikulic
b57eb17d47
More Python 3 updates.
2021-01-17 17:29:23 +11:00
Emil Mikulic
d39cc3849a
test_auth: Add test for wrong auth.
2021-01-17 16:55:09 +11:00
Emil Mikulic
7e60a9b731
test_auth.py: Update to Python 3.
2021-01-17 16:52:47 +11:00
Emil Mikulic
3f236fd71b
test.py: close sockets, more Python 3 cleanups.
2021-01-17 16:36:26 +11:00
Emil Mikulic
67c506b620
Convert test.py to Python 3.
...
Unicode was a mistake.
2021-01-17 16:29:41 +11:00
Emil Mikulic
598a47fe9d
Add tests for --auth.
2020-07-01 21:22:17 +10:00
Emil Mikulic
47ba3fd7c7
-fno-omit-frame-pointer to get full backtraces in asan build.
2020-07-01 20:46:10 +10:00
Emil Mikulic
36ab416f73
Enable leak sanitizer.
2020-07-01 20:43:49 +10:00
Emil Mikulic
6c7fb762ac
Adjust test: make_safe_uri no longer strips query params.
2020-07-01 20:15:03 +10:00
Emil Mikulic
5fc747a64e
Add tests for fetching a file with a question mark in its name.
2020-07-01 20:15:03 +10:00
Emil Mikulic
9274bfbfe9
clang-warns: use clang in path by default.
2020-07-01 19:41:46 +10:00
Emil Mikulic
cbbaba25fb
Add benchmark.
2018-12-11 00:42:52 +11:00
Emil Mikulic
ba63a6d60f
Add test for --timeout.
2018-12-10 23:52:42 +11:00
Emil Mikulic
8207cf6b0f
run-tests: try to use the default gcc and clang.
2018-12-10 23:35:31 +11:00
Emil Mikulic
6e8abe2324
run-tests: don't mix msan with ubsan.
...
ubsan seems to be causing false positives for msan.
We already try ubsan together with asan.
2018-12-10 23:34:56 +11:00
Emil Mikulic
7d0fc1d9f9
Clean more.
2018-12-10 23:34:34 +11:00
Emil Mikulic
e5ce7390c3
open_sockets: finer grained timing.
2018-12-10 21:03:17 +11:00
Emil Mikulic
dcb89f3d0f
Add helper script for opening sockets until they run out.
2018-12-10 01:10:19 +11:00
Emil Mikulic
5f519fec8d
Add make_safe_url_new()
...
Contributed by: Bert Gijsbers
2018-12-09 23:44:33 +11:00
Emil Mikulic
6b91b9dc05
Add LLVM fuzzer.
2018-12-09 23:13:17 +11:00
Emil Mikulic
6acf37e879
Build with warnings.
2016-01-28 01:06:08 +11:00
Emil Mikulic
485ebd1a20
Run tests under msan.
2016-01-28 00:41:34 +11:00
Emil Mikulic
26e7adea15
Add asan and ubsan to tests, watch stderr.
2016-01-24 16:39:32 +11:00
Emil Mikulic
ae676feaeb
Add Makefile for tests and cleaning up.
2016-01-23 20:11:30 +11:00
Emil Mikulic
3478d24419
Make the output more obvious.
2016-01-23 20:10:10 +11:00
Emil Mikulic
112f1ccb92
Test builds with different defines.
2016-01-23 20:08:02 +11:00
Emil Mikulic
f913e17125
Rename "cover" to "run-tests"
2016-01-23 20:05:02 +11:00
Emil Mikulic
0ee2971740
Catch up to clang changes.
2016-01-14 00:57:42 +11:00
Emil Mikulic
853a6af62d
Indent, add dir, allow inconclusive.
2016-01-11 00:32:15 +11:00
Emil Mikulic
1c5fdb5607
Escape URLs according to RFC3986.
...
Previously, we weren't escaping parentheses when generating directory listings.
Pointed out by: Wijatmoko U. Prayitno
2015-05-19 22:04:39 +10:00
Emil Mikulic
c4c0034242
Add --default-mimetype flag.
2015-05-19 21:40:26 +10:00
Emil Mikulic
e9aeaba7fe
Add test for --no-listing.
2015-05-19 21:30:59 +10:00
Emil Mikulic
03a22661a0
Test keepalive.
2015-01-01 22:18:10 +11:00