Annotation of src/libexec/httpd/bozohttpd.8, Revision 1.32.6.1
1.32.6.1! msaitoh 1: .\" $NetBSD: bozohttpd.8,v 1.46 2014/02/09 12:32:32 mrg Exp $
1.3 mrg 2: .\"
1.32 mrg 3: .\" $eterna: bozohttpd.8,v 1.101 2011/11/18 01:25:11 mrg Exp $
1.1 tls 4: .\"
1.32.6.1! msaitoh 5: .\" Copyright (c) 1997-2014 Matthew R. Green
1.1 tls 6: .\" All rights reserved.
7: .\"
8: .\" Redistribution and use in source and binary forms, with or without
9: .\" modification, are permitted provided that the following conditions
10: .\" are met:
11: .\" 1. Redistributions of source code must retain the above copyright
12: .\" notice, this list of conditions and the following disclaimer.
13: .\" 2. Redistributions in binary form must reproduce the above copyright
14: .\" notice, this list of conditions and the following disclaimer in the
15: .\" documentation and/or other materials provided with the distribution.
16: .\"
17: .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20: .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22: .\" BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23: .\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24: .\" AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25: .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26: .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27: .\" SUCH DAMAGE.
28: .\"
1.32.6.1! msaitoh 29: .Dd February 9, 2014
1.3 mrg 30: .Dt HTTPD 8
1.9 joerg 31: .Os
1.1 tls 32: .Sh NAME
1.3 mrg 33: .Nm httpd
1.1 tls 34: .Nd hyper text transfer protocol version 1.1 daemon
35: .Sh SYNOPSIS
36: .Nm
1.32 mrg 37: .Op Fl CIMPSZciptvx
1.1 tls 38: .Op Fl C Ar suffix cgihandler
39: .Op Fl I Ar port
1.32.6.1! msaitoh 40: .Op Fl L Ar prefix script
1.1 tls 41: .Op Fl M Ar suffix type encoding encoding11
1.26 jmmv 42: .Op Fl P Ar pidfile
1.32 mrg 43: .Op Fl S Ar server_software
44: .Op Fl Z Ar cert privkey
45: .Op Fl c Ar cgibin
46: .Op Fl i Ar address
1.15 wiz 47: .Op Fl p Ar pubdir
1.6 jnemeth 48: .Op Fl t Ar chrootdir
1.1 tls 49: .Op Fl v Ar virtualroot
50: .Op Fl x Ar index
51: .Ar slashdir
52: .Op Ar myname
53: .Sh DESCRIPTION
54: The
55: .Nm
56: program reads a
57: .Em HTTP
58: request from the standard input, and sends a reply to the standard output.
59: Besides ~user translation and virtual hosting support (see below), all file
60: requests are from
61: .Ar slashdir
62: directory.
63: The server uses
64: .Ar myname
65: as its name, which defaults to the local hostname, obtained from
66: .Xr gethostname 3
67: (but see the
68: .Fl v
69: option for virtual hosting.)
70: .Nm
1.21 mrg 71: writes logs to
1.22 wiz 72: .Xr syslog 3
73: using the ftp facility (but see the
1.21 mrg 74: .Fl s
75: option for testing.)
76: .Nm
1.1 tls 77: is designed to be small, simple and relatively featureless,
78: hopefully increasing its security.
1.7 wiz 79: .Ss OPTIONS
1.1 tls 80: The following options are available:
81: .Bl -tag -width xxxcgibin
82: .It Fl b
1.28 jmmv 83: Enables daemon mode, where
1.1 tls 84: .Nm
85: detaches from the current terminal, running in the background and
86: servicing HTTP requests.
87: .It Fl C Ar suffix cgihandler
1.28 jmmv 88: Adds a new CGI handler program for a particular file type.
1.1 tls 89: The
90: .Ar suffix
91: should be any normal file suffix, and the
92: .Ar cgihandler
93: should be a full path to an interpreter.
94: This option is the only way to enable CGI programs that exist
95: outside of the cgibin directory to be executed.
96: Multiple
97: .Fl C
98: options may be passed.
99: .It Fl c Ar cgibin
1.28 jmmv 100: Enables the CGI/1.1 interface.
1.1 tls 101: The
102: .Ar cgibin
103: directory is expected to contain the CGI programs to be used.
104: .Nm
105: looks for URL's in the form of
1.7 wiz 106: .Em /cgi-bin/\*[Lt]scriptname\*[Gt]
1.1 tls 107: where
1.14 mrg 108: .Aq scriptname
1.1 tls 109: is a valid CGI program in the
110: .Ar cgibin
111: directory.
112: In other words, all CGI URL's must begin with
113: .Em \%/cgi-bin/ .
114: Note that the CGI/1.1 interface is not available with
115: .Em ~user
116: translation.
117: .It Fl e
1.28 jmmv 118: Causes
1.1 tls 119: .Nm
120: to not clear the environment when used with either the
121: .Fl t
122: or
123: .Fl U
124: options.
1.14 mrg 125: .It Fl f
1.28 jmmv 126: Stops the
1.14 mrg 127: .Fl b
128: flag from
129: .Nm
130: detaching from the tty and going into the background.
1.1 tls 131: .It Fl H
1.28 jmmv 132: Causes directory index mode to hide files and directories
1.1 tls 133: that start with a period, except for
134: .Pa .. .
135: Also see
136: .Fl X .
137: .It Fl I Ar port
1.28 jmmv 138: Causes
1.30 mrg 139: .Nm
140: to use
1.1 tls 141: .Ar port
1.30 mrg 142: instead of the default
1.1 tls 143: .Dq http
144: port.
1.30 mrg 145: When used with the
1.1 tls 146: .Fl b
1.30 mrg 147: option, it changes the bound port.
148: Otherwise it forces redirections to use this port instead of the
149: value obtained via
150: .Xr getsockname 2 .
1.28 jmmv 151: .It Fl i Ar address
152: Causes
1.1 tls 153: .Ar address
1.32.6.1! msaitoh 154: to be used as the address to bind daemon mode.
1.1 tls 155: If otherwise unspecified, the address used to bind is derived from the
156: .Ar myname ,
157: which defaults to the name returned by
158: .Xr gethostname 3 .
1.13 mrg 159: Only the last
160: .Fl i
161: option is used.
1.28 jmmv 162: This option is only valid with the
163: .Fl b
164: option.
1.32.6.1! msaitoh 165: .It Fl L Ar prefix script
! 166: Adds a new Lua script for a particular prefix.
! 167: The
! 168: .Ar prefix
! 169: should be an arbitrary text, and the
! 170: .Ar script
! 171: should be a full path to a Lua script.
! 172: Multiple
! 173: .Fl L
! 174: options may be passed.
! 175: A separate Lua state is created for each prefix.
! 176: The Lua script can register callbacks using the
! 177: httpd.register_handler('<name>', function) Lua function,
! 178: which will trigger the execution of the Lua function
! 179: .Em function
! 180: when a URL in the form
! 181: .Em http://<hostname>/<prefix>/<name>
! 182: is being accessed.
! 183: The function is passed three tables as arguments, the server
! 184: environment, the request headers, and the decoded query string
! 185: plus any data that was send as application/x-www-form-urlencoded.
1.1 tls 186: .It Fl M Ar suffix type encoding encoding11
1.28 jmmv 187: Adds a new entry to the table that converts file suffixes to
1.1 tls 188: content type and encoding.
189: This option takes four additional arguments containing
190: the file prefix, its
191: .Dq Content-Type ,
1.7 wiz 192: .Dq Content-Encoding ,
1.1 tls 193: and
194: .Dq Content-Encoding
195: for HTTP/1.1 connections, respectively.
1.7 wiz 196: If any of these are a single dash
197: .Pq Dq - ,
198: the empty string is used instead.
1.1 tls 199: Multiple
200: .Fl M
201: options may be passed.
202: .It Fl n
1.28 jmmv 203: Stops
1.1 tls 204: .Nm
205: from doing IP address to name resolution of hosts for setting the
206: .Ev REMOTE_HOST
207: variable before running a CGI program.
208: This option has no effect without the
209: .Fl c
210: option.
1.26 jmmv 211: .It Fl P Ar pidfile
1.28 jmmv 212: Causes
1.26 jmmv 213: .Nm
214: to create a pid file in
215: .Ar pidfile
216: when run in daemon mode with the
217: .Fl b
218: option.
1.1 tls 219: .It Fl p Ar pubdir
1.28 jmmv 220: Changes the default user directory for
1.1 tls 221: .Em /~user/
222: translations from
223: .Dq public_html
224: to
225: .Ar pubdir .
226: .It Fl r
1.28 jmmv 227: Forces pages besides the
1.1 tls 228: .Dq index.html
229: (see the
230: .Fl X
231: option) page to require that the Referrer: header be present and
232: refer to this web server, otherwise a redirect to the
233: .Dq index.html
234: page will be returned instead.
235: .It Fl S Ar server_software
1.28 jmmv 236: Sets the internal server version to
1.1 tls 237: .Ar server_software .
238: .It Fl s
1.28 jmmv 239: Forces logging to be set to stderr always.
1.1 tls 240: .It Fl t Ar chrootdir
1.28 jmmv 241: Makes
1.1 tls 242: .Nm
1.28 jmmv 243: chroot to the specified directory
1.1 tls 244: before answering requests.
245: Every other path should be specified relative
246: to the new root, if this option is used.
247: Note that the current environment
248: is normally replaced with an empty environment with this option, unless the
249: .Fl e
250: option is also used.
251: .It Fl U Ar username
1.28 jmmv 252: Causes
1.1 tls 253: .Nm
254: to switch to the user and the groups of
255: .Ar username
256: after initialization.
257: This option, like
258: .Fl t
259: above, causes
260: .Nm
261: to clear the environment unless the
262: .Fl e
263: option is given.
264: .It Fl u
1.28 jmmv 265: Enables the transformation of Uniform Resource Locators of
1.1 tls 266: the form
267: .Em /~user/
1.16 mbalmer 268: into the directory
1.1 tls 269: .Pa ~user/public_html
270: (but see the
271: .Fl p
272: option above).
273: .It Fl V
1.28 jmmv 274: Sets the default virtual host directory to
1.1 tls 275: .Ar slashdir .
276: If no directory exists in
277: .Ar virtualroot
278: for the request, then
279: .Ar slashdir
280: will be used.
281: The default behaviour is to return 404 (Not Found.)
282: .It Fl v Ar virtualroot
1.28 jmmv 283: Enables virtual hosting support.
1.1 tls 284: Directories in
285: .Ar virtualroot
286: will be searched for a matching virtual host name, when parsing
287: the HTML request.
288: If a matching name is found, it will be used
289: as both the server's real name,
290: .Op Ar myname ,
291: and as the
292: .Ar slashdir .
293: See the
294: .Sx EXAMPLES
295: section for an example of using this option.
296: .It Fl X
1.28 jmmv 297: Enables directory indexing.
1.1 tls 298: A directory index will be generated only when the default file (i.e.
299: .Pa index.html
300: normally) is not present.
301: .It Fl x Ar index
1.28 jmmv 302: Changes the default file read for directories from
1.1 tls 303: .Dq index.html
304: to
305: .Ar index .
306: .It Fl Z Ar certificate_path privatekey_path
1.28 jmmv 307: Sets the path to the server certificate file and the private key file
1.6 jnemeth 308: in pem format.
309: It also causes
1.4 mrg 310: .Nm
311: to start SSL mode.
1.1 tls 312: .El
313: .Pp
314: Note that in
315: .Nm
316: versions 20031005 and prior that supported the
317: .Fl C
318: and
319: .Fl M
320: options, they took a single space-separated argument that was parsed.
321: since version 20040828, they take multiple options (2 in the case of
322: .Fl C
323: and 4 in the case of
324: .Fl M . )
1.7 wiz 325: .Ss INETD CONFIGURATION
1.1 tls 326: As
327: .Nm
328: uses
329: .Xr inetd 8
330: by default to process incoming TCP connections for HTTP requests
331: (but see the
332: .Fl b
333: option),
334: .Nm
335: has little internal networking knowledge.
336: (Indeed, you can run it on the command line with little change of functionality.)
337: A typical
338: .Xr inetd.conf 5
339: entry would be:
340: .Bd -literal
1.3 mrg 341: http stream tcp nowait:600 _httpd /usr/libexec/httpd httpd /var/www
342: http stream tcp6 nowait:600 _httpd /usr/libexec/httpd httpd /var/www
1.1 tls 343: .Ed
344: .Pp
345: This would serve web pages from
346: .Pa /var/www
347: on both IPv4 and IPv6 ports.
348: The
349: .Em :600
350: changes the
351: requests per minute to 600, up from the
352: .Xr inetd 8
353: default of 40.
354: .Pp
355: Using the
356: .Nx
357: .Xr inetd 8 ,
358: you can provide multiple IP-address based HTTP servers by having multiple
359: listening ports with different configurations.
1.7 wiz 360: .Ss NOTES
1.1 tls 361: This server supports the
362: .Em HTTP/0.9 ,
1.7 wiz 363: .Em HTTP/1.0 ,
1.1 tls 364: and
365: .Em HTTP/1.1
1.4 mrg 366: standards.
367: Support for these protocols is very minimal and many optional features are
368: not supported.
1.1 tls 369: .Pp
370: .Nm
1.32.6.1! msaitoh 371: can be compiled without
! 372: CGI support (NO_CGIBIN_SUPPORT),
! 373: user transformations (NO_USER_SUPPORT),
! 374: directory index support (NO_DIRINDEX_SUPPORT),
! 375: daemon mode support (NO_DAEMON_MODE),
! 376: dynamic MIME content (NO_DYNAMIC_CONTENT),
! 377: Lua suport (NO_LUA_SUPPORT),
! 378: and SSL support (NO_SSL_SUPPORT)
! 379: by defining the listed macros when building
1.1 tls 380: .Nm .
1.7 wiz 381: .Ss HTTP BASIC AUTHORISATION
1.1 tls 382: .Nm
1.3 mrg 383: has support for HTTP Basic Authorisation.
384: If a file named
385: .Pa .htpasswd
386: exists in the directory of the current request,
387: .Nm
388: will restrict access to documents in that directory
389: using the RFC 2617 HTTP
390: .Dq Basic
391: authentication scheme.
392: .Pp
393: Note:
394: This does not recursively protect any sub-directories.
395: .Pp
396: The
397: .Pa .htpasswd
398: file contains lines delimited with a colon containing
399: usernames and passwords hashed with
400: .Xr crypt 3 ,
401: for example:
402: .Bd -literal
1.6 jnemeth 403: heather:$1$pZWI4tH/$DzDPl63i6VvVRv2lJNV7k1
1.3 mrg 404: jeremy:A.xewbx2DpQ8I
405: .Ed
406: .Pp
407: On
408: .Nx ,
409: the
410: .Xr pwhash 1
411: utility may be used to generate hashed passwords.
1.4 mrg 412: .Pp
1.6 jnemeth 413: While
1.4 mrg 414: .Nm
415: distributed with
416: .Nx
417: has support for HTTP Basic Authorisation enabled by default,
1.11 mrg 418: in the portable distribution it is excluded.
1.4 mrg 419: Compile
420: .Nm
421: with
422: .Dq -DDO_HTPASSWD
1.6 jnemeth 423: on the compiler command line to enable this support.
1.14 mrg 424: It may require linking with the crypt library, using
1.4 mrg 425: .Dq -lcrypt .
1.7 wiz 426: .Ss SSL SUPPORT
1.1 tls 427: .Nm
428: has support for SSLv2, SSLv3, and TLSv1 protocols that is included by
1.6 jnemeth 429: default.
430: It requires linking with the crypto and ssl library, using
1.1 tls 431: .Dq -lcrypto -lssl .
432: To disable SSL SUPPORT compile
433: .Nm
434: with
435: .Dq -DNO_SSL_SUPPORT
436: on the compiler command line.
1.32.6.1! msaitoh 437: .Ss COMPRESSION
! 438: .Nm
! 439: supports a very basic form compression.
! 440: .Nm
! 441: will serve the requested file postpended with
! 442: .Dq Pa .gz
! 443: if it exists, it is readable, the client requested gzip compression, and
! 444: the client did not make a ranged request.
1.8 wiz 445: .Sh FILES
446: .Nm
447: looks for a couple of special files in directories that allow certain features
448: to be provided on a per-directory basis.
449: In addition to the
450: .Pa .htpasswd
451: used by HTTP basic authorisation,
452: if a
453: .Pa .bzdirect
454: file is found (contents are irrelevant)
455: .Nm
456: will allow direct access even with the
457: .Fl r
458: option.
459: If a
460: .Pa .bzredirect
461: symbolic link is found,
462: .Nm
463: will perform a smart redirect to the target of this symlink.
464: The target is assumed to live on the same server.
465: If a
466: .Pa .bzabsredirect
467: symbolic link is found,
468: .Nm
469: will redirect to the absolute url pointed to by this symlink.
470: This is useful to redirect to different servers.
471: .Sh EXAMPLES
472: To configure set of virtual hosts, one would use an
473: .Xr inetd.conf 5
474: entry like:
475: .Bd -literal
476: http stream tcp nowait:600 _httpd /usr/libexec/httpd httpd -v /var/vroot /var/www
477: .Ed
478: .Pp
479: and inside
480: .Pa /var/vroot
481: create a directory (or a symlink to a directory) with the same name as
482: the virtual host, for each virtual host.
1.32.6.1! msaitoh 483: Lookups for these names are done in a case-insensitive manner, and may
! 484: include the port number part of the request, allowing for distinct
! 485: virtual hosts on the same name.
1.8 wiz 486: .Pp
487: To use
488: .Nm
489: with PHP, one must use the
490: .Fl C
491: option to specify a CGI handler for a particular file type.
1.25 reed 492: Typically this will be like:
1.8 wiz 493: .Bd -literal
494: httpd -C .php /usr/pkg/bin/php /var/www
495: .Ed
1.1 tls 496: .Sh SEE ALSO
497: .Xr inetd.conf 5 ,
498: .Xr inetd 8
499: .Sh HISTORY
500: The
501: .Nm
1.11 mrg 502: program is actually called
503: .Dq bozohttpd .
504: It was first written in perl, based on another perl http server
1.1 tls 505: called
506: .Dq tinyhttpd .
507: It was then rewritten from scratch in perl, and then once again in C.
1.12 wiz 508: From
1.3 mrg 509: .Dq bozohttpd
1.11 mrg 510: version 20060517, it has been integrated into
511: .Nx .
1.1 tls 512: The focus has always been simplicity and security, with minimal features
513: and regular code audits.
1.4 mrg 514: This manual documents
515: .Nm
1.32.6.1! msaitoh 516: version 20140201.
1.1 tls 517: .Sh AUTHORS
1.32.6.1! msaitoh 518: .An -nosplit
1.1 tls 519: .Nm
1.32.6.1! msaitoh 520: was written by
! 521: .An Matthew R. Green
! 522: .Aq Mt mrg@eterna.com.au .
1.1 tls 523: .Pp
524: The large list of contributors includes:
525: .Bl -dash
526: .It
1.32.6.1! msaitoh 527: .An Marc Balmer
! 528: .Aq Mt mbalmer@NetBSD.org
! 529: added Lua support for dynamic content creation
1.4 mrg 530: .It
1.32.6.1! msaitoh 531: .An Christoph Badura
! 532: .Aq Mt bad@bsd.de
1.4 mrg 533: provided Range: header support
534: .It
1.32.6.1! msaitoh 535: .An Sean Boudreau
! 536: .Aq Mt seanb@NetBSD.org
1.24 wiz 537: provided a security fix for virtual hosting
1.23 mrg 538: .It
1.32.6.1! msaitoh 539: .An Julian Coleman
! 540: .Aq Mt jdc@coris.org.uk
1.1 tls 541: provided an IPv6 bugfix
542: .It
1.32.6.1! msaitoh 543: .An Chuck Cranor
! 544: .Aq Mt chuck@research.att.com
1.1 tls 545: provided cgi-bin support fixes, and more
546: .It
1.32.6.1! msaitoh 547: .An Alistair G. Crooks
! 548: .Aq Mt agc@NetBSD.org
! 549: cleaned up many internal interfaces, made bozohttpd linkable as a
! 550: library and provided the Lua binding.
! 551: .It
! 552: .An DEGROOTE Arnaud
! 553: .Aq Mt degroote@NetBSD.org
1.11 mrg 554: provided a fix for daemon mode
555: .It
1.32.6.1! msaitoh 556: .An Andrew Doran
! 557: .Aq Mt ad@NetBSD.org
1.1 tls 558: provided directory indexing support
559: .It
1.32.6.1! msaitoh 560: .An Per Ekman
! 561: .Aq Mt pek@pdc.kth.se
1.1 tls 562: provided a fix for a minor (non-security) buffer overflow condition
563: .It
1.32.6.1! msaitoh 564: .An Roland Dowdeswell
! 565: .Aq Mt elric@NetBSD.org
! 566: added support for serving gzipped files and better SSL handling
1.17 mrg 567: .It
1.32.6.1! msaitoh 568: .An Jun-ichiro itojun Hagino, KAME
! 569: .Aq Mt itojun@iijlab.net
1.1 tls 570: provided initial IPv6 support
571: .It
1.32.6.1! msaitoh 572: .An Martin Husemann
! 573: .Aq Mt martin@NetBSD.org
! 574: provided .bzabsredirect support, and fixed various redirection issues
1.1 tls 575: .It
1.32.6.1! msaitoh 576: .An Arto Huusko
! 577: .Aq Mt arto.huusko@pp2.inet.fi
1.11 mrg 578: provided fixes cgi-bin
579: .It
1.32.6.1! msaitoh 580: .An Roland Illig
! 581: .Aq Mt roland.illig@gmx.de
1.1 tls 582: provided some off-by-one fixes
583: .It
1.32.6.1! msaitoh 584: .An Zak Johnson
! 585: .Aq Mt zakj@nox.cx
1.11 mrg 586: provided cgi-bin enhancements
587: .It
1.32.6.1! msaitoh 588: .An Nicolas Jombart
! 589: .Aq Mt ecu@ipv42.net
1.1 tls 590: provided fixes for HTTP basic authorisation support
591: .It
1.32.6.1! msaitoh 592: .An Antti Kantee
! 593: .Aq Mt pooka@NetBSD.org
! 594: provided fixes for HTTP basic authorisation support
! 595: .It
! 596: .An Thomas Klausner
! 597: .Aq Mt wiz@NetBSD.org
1.1 tls 598: provided many fixes and enhancements for the man page
599: .It
1.32.6.1! msaitoh 600: .An Arnaud Lacombe
! 601: .Aq Mt alc@NetBSD.org
! 602: provided some clean up for memory leaks
! 603: .It
! 604: .An Johnny Lam
! 605: .Aq Mt jlam@NetBSD.org
1.1 tls 606: provided man page fixes
607: .It
1.32.6.1! msaitoh 608: .An Julio Merino
! 609: .Aq Mt jmmv@NetBSD.org
! 610: Added the
! 611: .Fl P
! 612: option.
! 613: .It
! 614: .An Luke Mewburn
! 615: .Aq Mt lukem@NetBSD.org
1.7 wiz 616: provided many various fixes, including cgi-bin fixes and enhancements,
1.1 tls 617: HTTP basic authorisation support and much code clean up
618: .It
1.32.6.1! msaitoh 619: .An Rajeev V. Pillai
! 620: .Aq Mt rajeev_v_pillai@yahoo.com
! 621: provided several fixes for virtual hosting
! 622: .It
! 623: .An Jeremy C. Reed
! 624: .Aq Mt reed@NetBSD.org
1.4 mrg 625: provided several clean up fixes, and man page updates
626: .It
1.32.6.1! msaitoh 627: .An Scott Reynolds
! 628: .Aq Mt scottr@NetBSD.org
1.1 tls 629: provided various fixes
630: .It
1.32.6.1! msaitoh 631: .An Tyler Retzlaff
! 632: .Aq Mt rtr@eterna.com.au
1.4 mrg 633: provided SSL support, cgi-bin fixes and much other random other stuff
1.1 tls 634: .It
1.32.6.1! msaitoh 635: .An rudolf
! 636: .Aq Mt netbsd@eq.cz
1.23 mrg 637: provided minor compile fixes and a CGI content map fix
638: .It
1.32.6.1! msaitoh 639: .An Steve Rumble
! 640: .Aq Mt rumble@ephemeral.org
1.1 tls 641: provided the
642: .Fl V
643: option.
644: .It
1.32.6.1! msaitoh 645: .An Thor Lancelot Simon
! 646: .Aq Mt tls@NetBSD.org
! 647: enhanced cgi-bin support.
! 648: .It
! 649: .An Joerg Sonnenberger
! 650: .Aq Mt joerg@NetBSD.org
1.11 mrg 651: implemented If-Modified-Since support
652: .It
1.32.6.1! msaitoh 653: .An ISIHARA Takanori
! 654: .Aq Mt ishit@oak.dti.ne.jp
1.1 tls 655: provided a man page fix
656: .It
1.32.6.1! msaitoh 657: .An Holger Weiss
! 658: .Aq Mt holger@CIS.FU-Berlin.DE
1.11 mrg 659: provided http authorisation fixes
660: .It
1.32.6.1! msaitoh 661: .Aq Mt xs@kittenz.org
1.1 tls 662: provided chroot and change-to-user support, and other various fixes
1.11 mrg 663: .It
1.32.6.1! msaitoh 664: Coyote Point provided various CGI fixes.
1.29 jmmv 665: .It
1.32.6.1! msaitoh 666: .An Julio Merino
! 667: added pidfile support and provided some man page fixes.
1.1 tls 668: .El
669: .Pp
670: There are probably others I have forgotten (let me know if you care)
1.11 mrg 671: .Pp
672: Please send all updates to
673: .Nm
674: to
1.32.6.1! msaitoh 675: .Aq Mt mrg@eterna.com.au
! 676: for inclusion in future releases.
1.1 tls 677: .Sh BUGS
678: .Nm
1.27 mbalmer 679: does not handle HTTP/1.1 chunked input from the client yet.
CVSweb <webmaster@jp.NetBSD.org>