Commit Graph

159 Commits

Author SHA1 Message Date
Emil Mikulic
5ab0496a9b Call tzset() during initialization.
truss output suggests this isn't enough to load posixrules (UTC leap
seconds data) which happens only after the first request.  =(
2013-04-28 19:56:51 +10:00
Emil Mikulic
3ed2762831 Another state transition optimization:
Go from send_header straight to send_reply.
2013-04-28 19:56:51 +10:00
Emil Mikulic
844dcc6b9d Another state transition optimization due to NBIO:
Go from recv_request to send_header without visiting select()
2013-04-28 19:56:51 +10:00
Emil Mikulic
ba91f1cdb3 After accepting a connection, attempt a read straight away instead of
going through an iteration of the select() loop.
2013-04-28 19:56:50 +10:00
Emil Mikulic
f3ce5d1eb9 Don't just SETFL O_NONBLOCK, first GETFL. 2013-04-28 19:56:50 +10:00
Emil Mikulic
b86889f027 %Z gives UTC. Apache uses GMT instead, and wget complains about an
invalid header when it sees UTC, so switch.
2013-04-28 19:56:50 +10:00
Emil Mikulic
14d0ca9ac7 Get the constness right. 2013-04-28 19:56:50 +10:00
Emil Mikulic
625dc5e473 - In decode_url()
- Use '\0' instead of 0 to hint that it's in a character context.
  - Don't realloc - this wastes more time than it saves memory.
- Don't forget to free decoded url if it's found to be unsafe!
2013-04-28 19:56:50 +10:00
Emil Mikulic
ccea5116b5 Restore a check I shouldn't have removed.
We now pass all our tests again.
2013-04-28 19:56:50 +10:00
Emil Mikulic
4b90b875c6 Adapt make_safe_uri() to work in-place.
We're currently failing some tests.
2013-04-28 19:56:50 +10:00
Emil Mikulic
97ce3cb5d0 Turn up the debugging and warnflags. 2013-04-28 19:56:50 +10:00
Emil Mikulic
dc63087421 Test for consolidate_slashes() too. 2013-04-28 19:56:50 +10:00
Emil Mikulic
d7707a9216 Remember to free memory. 2013-04-28 19:56:50 +10:00
Emil Mikulic
a0afb2cc8b Add tests for make_safe_uri. 2013-04-28 19:56:50 +10:00
Emil Mikulic
e6c8b820fd Rename warnflags to debug-build and add debugging and torture defines. 2013-04-28 19:56:50 +10:00
Emil Mikulic
6d24c697b1 Request a bigger file -> more testing. 2013-04-28 19:56:50 +10:00
Emil Mikulic
af7d21c31e Torture test: send and recv one byte at a time to make sure darkhttpd's
buffering is up to scratch.
2013-04-28 19:56:50 +10:00
Emil Mikulic
ab1204f700 Implement (optional, compile-time) shrinking of send buffer for torture tests. 2013-04-28 19:56:50 +10:00
Emil Mikulic
94d3403c2e Remove the pidfile_path assertion entirely.
Its name changed but I didn't notice because I didn't do any DEBUG builds.
2013-04-28 19:56:50 +10:00
Emil Mikulic
b307616f3d Fix some GCC warnings.
Pointed out by: Brian Lewis <bsl04@uark.edu>
Pointed out on: Wed, 27 Sep 2006 15:46:26 -0500
2013-04-28 19:56:50 +10:00
Emil Mikulic
de03d20958 Need some release engineering reminders after I failed to update the pkgname
when I released v1.4.
2013-04-28 19:56:50 +10:00
Emil Mikulic
4a405e36b1 Walking through the code - correct some comment typos. 2013-04-28 19:56:50 +10:00
Emil Mikulic
c2ff18a157 [ darkhttpd-1.4 release ]
Fix a segfault in log_connection() that happens when the incoming
request is too long.

(Forgot to bump the version)
2013-04-28 19:56:50 +10:00
Emil Mikulic
c9947250f2 [ darkhttpd-1.3 release ]
Also remove an unused variable.
2013-04-28 19:56:50 +10:00
Emil Mikulic
868c1ed1da Don't need libutil anymore. 2013-04-28 19:56:50 +10:00
Emil Mikulic
572eed9e3a Add example of --dameon and --pidfile to README. 2013-04-28 19:56:50 +10:00
Emil Mikulic
953a93d2fc Import pidfile helpers and cut them down to just the pieces we need. 2013-04-28 19:56:50 +10:00
Emil Mikulic
c3166bf1d0 Implement warn() 2013-04-28 19:55:48 +10:00
Emil Mikulic
2d4fbd38cd Implement daemonize. 2013-04-28 19:55:48 +10:00
Emil Mikulic
cad637254a Add mimetypes, sort them, remove lots of whitespace from the middle. 2013-04-28 19:55:48 +10:00
Emil Mikulic
ff152e87ef Update copyright years. 2013-04-28 19:55:36 +10:00
Emil Mikulic
25eea59af9 We need libutil on BSD now. 2013-04-28 19:44:12 +10:00
Emil Mikulic
258d54ed8c You don't "usually" need root privs for chroot(), you always do. 2013-04-28 19:44:12 +10:00
Emil Mikulic
4fed6d0665 Implement --pidfile and move clean shutdown into main() 2013-04-28 19:44:12 +10:00
Emil Mikulic
42833fb312 Fix build on FreeBSD by spelling "sockin" correctly.
This has been outstanding for a long time.
2013-04-28 19:44:12 +10:00
Emil Mikulic
6c1922391f Answer requests that end in \n\n as well as the more pedantic \r\n\r\n 2013-04-28 19:44:12 +10:00
Emil Mikulic
bea398d629 Add support for sendfile() on Solaris. 2013-04-28 19:44:12 +10:00
Emil Mikulic
49fb5f3fbf Fix fallback on platforms that don't have sendfile()
It was quite badly broken.
2013-04-28 19:44:12 +10:00
Emil Mikulic
2ca3cef4a3 [ darkhttpd-1.2 release ] 2013-04-28 19:44:12 +10:00
Emil Mikulic
666d9b3355 Instructions, not prompts. 2013-04-28 19:44:12 +10:00
Emil Mikulic
3829ceade8 Fix (unsigned < 0) comparison. 2013-04-28 19:44:12 +10:00
Emil Mikulic
74fcaf5859 safefree -> free 2013-04-28 19:44:12 +10:00
Emil Mikulic
dfe896357a Fix debugf mess. 2013-04-28 19:44:12 +10:00
Emil Mikulic
b50b4f1c5a Fix signed-unsigned comparison. 2013-04-28 19:44:12 +10:00
Emil Mikulic
5cf2862f08 Manually inline acceptfilter code to remove unused arg warning on
non-FreeBSD platforms.
2013-04-28 19:44:12 +10:00
Emil Mikulic
e624dbbe02 Fix err and debugf warnings. 2013-04-28 19:44:12 +10:00
Emil Mikulic
91fcb80e4a Adjust copyright and license. 2013-04-28 19:44:12 +10:00
Emil Mikulic
d545127600 Track requests and bytes transferred statistics. 2013-04-28 19:44:12 +10:00
Emil Mikulic
c4f78a124c [ darkhttpd-1.1 release ]
Make the Makefile work with Solaris make(1S)
2013-04-28 19:44:12 +10:00
Emil Mikulic
27a35821a1 wwwroot = strdup(argv[1]) so we don't end up stripping the only existing
slash out of the commandline shown by ps(1).  And free it on shutdown.
2013-04-28 19:44:12 +10:00