Commit Graph

54 Commits

Author SHA1 Message Date
mrg
b091ab062f also fix have_dynamic_content from the previous previous. re-order
the debug and dynamic content to match the same pattern as everything
else so similar problems are less likely in the future.
2018-11-20 01:23:06 +00:00
mrg
75e07df53f fix previous: have_debug was reversed. 2018-11-20 01:19:51 +00:00
mrg
cbabfa751a move some #if support into bozohttpd.h. 2018-11-20 01:15:50 +00:00
mrg
3230a9a3d5 from CHANGES:
o  reduce default timeouts, and add expand timeouts to handle the
   initial line, each header, and the total time spent
o  add -T option to expose new timeout settings
o  minor RFC fixes related to timeout handling responses

old timeouts:
60 seconds for initial request like, 60 seconds per header line,
and no whole timeout (though the recent total header size changes
do introduce one that would be about 11 hours.)
new timeouts:
30 seconds for initial request like, 10 seconds per header line,
and a total request time of 600 seconds.


the new global timeout is implemented using CLOCK_MONOTONIC, with
a fallback to CLOCK_REALTIME if monotonic time is unavailable.


reject multiple Host: headers.  besides being protocol standard,
this closes one additional memory leak found by JP.  add a simple
test to check this.


clean up option and usage handling some.
2018-11-20 01:06:46 +00:00
mrg
0ccc27dc69 fix a denial of service attack against header contents, which
is now bounded at 16KiB.  reported by JP.
2018-11-19 04:12:22 +00:00
christos
d9ca995a53 fix the rest of the compilers. 2018-05-04 18:07:23 +00:00
christos
c1e5495798 fix lint 2018-05-04 18:06:44 +00:00
mrg
630f2c0b49 call this bozohttpd 20170201. 2017-01-31 14:36:09 +00:00
agc
205633288c As proposed in:
http://mail-index.netbsd.org/tech-userlevel/2016/05/18/msg009999.html

and

	https://www.netbsd.org/~agc/bozo-20160517.diff

add a patch to httpd to return the version string of httpd itself, and use the
-G option on the command line to enable this. This gives httpd the ability to
show, from the command line, what version is running.

	% /usr/build/obj/x86_64/usr/src/libexec/httpd/bozohttpd -G
	bozohttpd version bozohttpd/20160415
	%
2016-05-24 21:18:29 +00:00
mrg
27da98ff14 updates and bozohttpd 20160415:
o  add search-word support for CGI
o  fix a security issue in CGI suffix handler support which would
   allow remote code execution, from shm@netbsd.org
o  -C option supports now CGI scripts only
2016-04-15 17:57:21 +00:00
elric
afe55bf842 Add the concept of ``reply headers'', that is a SIMPLEQ of headers that
will be included in the HTTP reply.  We define this as we are about to
add an authentication method that may need to have a conversation with
the client.
2016-01-02 18:40:13 +00:00
mrg
c2e98309d5 - convert most asprintf() calls to bozoasprintf().
- don't call getpwuid(0) if we don't need to, or fail it it fails,
  and remove the 'username' member of bozohttpd_t since it is not
  used outside of bozo_setup().
2015-12-29 04:21:46 +00:00
mrg
881b8188de rename bozo_err/bozo_warn/bozo_asprintf to bozoerr/etc.
new rule is that function that mirror libc-style functions get no underscore.
2015-12-28 07:37:59 +00:00
mrg
cff2d95613 several clean ups:
- bozostrdup() gains a request parameter, and uses it to determine
  what sort of error handling is required
- bozo_strdup() dies
- size_arrays() reduced slightly, pushing error handling into the caller
- convert to size_t for some array indices
- bozo_set_pref() and bozo_init_prefs() gain httpd parameters
- apply a bunch of manual CSE to vastly reduce the number of times the
  string "request->hr_httpd" appears.
- CGI parse_header() takes a request not httpd now

XXX: lua glue updated to call bozo_init_prefs() with htttpd parameter,
     but i'm only guessing here.
2015-12-27 10:21:35 +00:00
christos
f47ab3a37e Introduce bozo_strdup and bozo_asprintf to add error checking and reduce
code duplication.

Note that bozo_strdup is different that bozostrdup; the _ routines exit
loging error to syslog or stderr, whereas the non _ routines send error
responses to the http client.
2015-12-12 18:06:58 +00:00
christos
14ba256990 - restrict the default list of ciphers to something more secure
- restrict ssl options
From Travis Paul
2015-12-12 16:57:53 +00:00
shm
c4fe1fac22 * add CGI support for ~user translation (-E switch)
* add redirects to ~user translation
* fix bugs around ~user translation
* add schema detection for absolute redirects
* fixed few memory leaks
* bunch of minor tweaks
* removed -r support
* smarter redirects

OK mrg@
2015-10-28 09:20:15 +00:00
mrg
ce12165d33 s/USE_NBUTIL/HAVE_NBUTIL_H/, to match the Makefile.
fixes a merge problem in introduced when merging the QNX patches.

from Jan Danielsson.
2015-10-25 19:06:49 +00:00
mrg
e8204d05c3 on QNX, use nbutil.h. 2015-08-05 06:50:44 +00:00
mrg
56ba1ad0cf fix content type handling to not hard code (wrong) values for length,
but just call strlen() as needed.  call this 20150501.

reported by Jan Danielsson for ".svg".
2015-05-02 11:35:48 +00:00
shm
60a0878843 Fixed memory leak in case of multiple authentication headers sent by the
client.

OK mrg@
2014-11-21 08:58:28 +00:00
mrg
71b444f24e rewrite much of the SSL code:
- handle errors in many places they weren't properly
- make SSL_accept() an error the main code notices
- expand bozo_ssl_err() to include bozo_ssl_warn(), bozo_clear_ssl_queue()
- remove empty bozo_ssl_flush()
2014-07-17 06:27:52 +00:00
mrg
ca768e99f0 some fixes for virtual hosting support from Rajeev V. Pillai:
- memory leaks in virtual host plugged
- ensure hr_host is only the host/port part when the request
  contains the hostname in the URI not Host: header.


also update the references to the old http/1.1 draft rev 06
to RFC 2616 (fortunately, most sections hadn't moved.)
2014-02-09 01:46:10 +00:00
mrg
d1b43391bd - update CHANGES with recent changes
- update version to 20140102
- update copyrights
- use getcwd() over getwd()
- fix lean build (don't include lua)
2014-01-02 08:21:38 +00:00
mbalmer
cb23152c39 add Lua scripting support to bozohttpd, see httpd(8) for details 2013-10-12 17:24:06 +00:00
mbalmer
bee8901ae3 remove trailing whitespace 2013-10-12 07:49:40 +00:00
pooka
c99e7cc9a4 allow compile-time overriding of BOZO_WRSZ/MMAPSZ parameters 2013-09-04 22:59:50 +00:00
mrg
fd2f6d873b prepare for netbsd to be mastersrc for bozohttpd. 2013-07-11 08:24:47 +00:00
mrg
7ec01116c2 copyright maint. 2013-07-11 07:46:37 +00:00
mrg
a4b84ca096 - update CHANGES with recent changes
- export esacpe_html() and use it in directory indexing
- update manual to include recent contributors
2013-07-11 07:44:19 +00:00
martin
407204a79f Redo previous (fixing a memory leak introduced), and while there rework
virtual server support - in daemonized mode mixed virtual and "main"
server usage would alter the virtual hostname depending on order of
requests.
To fix, move the effective virtual hostname into the request structure
and leave the httpd server description static.
2013-06-27 10:01:31 +00:00
mrg
1be9745405 when generating URIs escape various characters as specified in RFC 3986.
this makes, among other things, files/dirs with "?" work with dir indexing.
2012-07-19 09:53:06 +00:00
joerg
62451b58c9 Add BOZO_PRINTFLIKE for functions that pass an argument and va_arg to
a vprintf-like function.
2012-03-14 23:47:19 +00:00
elric
f082d14a0d Check in very basic compressed file support. httpd will now serve
a precompressed .gz file if it exists, the client claims to support
gzip and the request is not ranged.
2012-02-20 09:26:56 +00:00
mrg
41f9e94281 merge bozohttpd 20111118 2011-11-18 09:51:31 +00:00
joerg
43d0646972 Don't check for __attribute__ being defined, it won't. Check for GCC 3.x
or compatible and define BOZO_PRINTFLIKE / BOZO_DEAD. Fix fallout.
2011-08-27 15:33:59 +00:00
jmmv
83bb438905 Add pid file support: if the new -P option is provided, it specifies the
location of the pid file to create.

OKed by mrg@.
2011-03-29 07:22:31 +00:00
mrg
df5be5736c merge bozohttpd 20100920 2010-09-20 23:11:38 +00:00
mrg
e0a4d05008 fix another compile error if NO_DAEMON_MODE is defined. also from rudolf. 2010-09-09 04:41:49 +00:00
mrg
f3a95c474f fix a compile error if NO_DIRINDEX_SUPPORT is defined. from rudolf. 2010-09-08 00:47:44 +00:00
mrg
aeb27ed42c merge bozohttpd 20100617. 2010-06-17 19:43:30 +00:00
mrg
a07e0db33b merge bozohttpd 20100510. 2010-05-10 14:44:19 +00:00
mrg
ce2063081a merge bozohttpd 20100509. 2010-05-10 03:37:45 +00:00
mrg
c6e75af28a merge bozohttpd 20090522 2009-05-23 02:26:03 +00:00
mrg
bbbdac0a6f merge bozohttpd 20090418. remove a couple of minor do-nothing local
changes that don't need to cause conflicts.
2009-04-18 21:22:03 +00:00
mrg
ca01226b20 de-const some variables passed to free(). 2009-04-18 07:37:08 +00:00
mrg
033876329d merge bozohttpd 20090417 2009-04-18 07:28:24 +00:00
joerg
7925dff4ee Add If-Modified-Since support. 2009-02-09 17:06:11 +00:00
tls
f0f7a44ff5 From Sergey Katsev at Coyote Point: fix bugs in request transformation and
CGI handling, including bin/40355 .  There are two main changes here:

1) call process_cgi() after transform_request(), not before.  Now it is
   possible to have a default cgi handler catch a request for a path that
   was produced by transformation, e.g. by index generation -- so now the
   index can be "generated" by a CGI if that is what the user desires.

2) More clearly distinguish "file" from "query" portions of the request
   URL, so we do not feed ?-suffixed "arguments" to plain files, fail to
   match filename extensions due to ?-suffixes, etc.

   After this change, there are only two cases which use the "query"
   portion of the request (the portion after the ?):

     a) A redirect issued by HTTPD will redirect to the new file, but
	with the same query string.

     b) process_cgi() will, of course continue to use the query string.
2009-02-04 22:55:58 +00:00
mrg
707281a285 merge bozohttpd 20080303 2008-03-03 22:15:08 +00:00