[BACK]Return to bozohttpd.8 CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / libexec / httpd

Annotation of src/libexec/httpd/bozohttpd.8, Revision 1.65.4.1

1.65.4.1! martin      1: .\"    $NetBSD: bozohttpd.8,v 1.74 2018/11/23 08:11:20 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.65.4.1! martin      5: .\" Copyright (c) 1997-2018 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.65.4.1! martin     29: .Dd November 19, 2018
1.50      mrg        30: .Dt BOZOHTTPD 8
1.9       joerg      31: .Os
1.1       tls        32: .Sh NAME
1.50      mrg        33: .Nm bozohttpd
1.1       tls        34: .Nd hyper text transfer protocol version 1.1 daemon
                     35: .Sh SYNOPSIS
                     36: .Nm
1.60      agc        37: .Op Fl EGHVXefhnsu
1.1       tls        38: .Op Fl C Ar suffix cgihandler
1.41      wiz        39: .Op Fl I Ar port
1.39      mbalmer    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
1.65.4.1! martin     44: .Op Fl T Ar type timeout
1.55      kamil      45: .Op Fl U Ar username
1.32      mrg        46: .Op Fl Z Ar cert privkey
                     47: .Op Fl c Ar cgibin
                     48: .Op Fl i Ar address
1.15      wiz        49: .Op Fl p Ar pubdir
1.6       jnemeth    50: .Op Fl t Ar chrootdir
1.1       tls        51: .Op Fl v Ar virtualroot
                     52: .Op Fl x Ar index
1.57      christos   53: .Op Fl z Ar ciphers
1.1       tls        54: .Ar slashdir
                     55: .Op Ar myname
                     56: .Sh DESCRIPTION
                     57: The
                     58: .Nm
                     59: program reads a
                     60: .Em HTTP
                     61: request from the standard input, and sends a reply to the standard output.
                     62: Besides ~user translation and virtual hosting support (see below), all file
                     63: requests are from
                     64: .Ar slashdir
                     65: directory.
                     66: The server uses
                     67: .Ar myname
                     68: as its name, which defaults to the local hostname, obtained from
                     69: .Xr gethostname 3
                     70: (but see the
                     71: .Fl v
                     72: option for virtual hosting.)
                     73: .Nm
1.21      mrg        74: writes logs to
1.22      wiz        75: .Xr syslog 3
                     76: using the ftp facility (but see the
1.21      mrg        77: .Fl s
                     78: option for testing.)
                     79: .Nm
1.1       tls        80: is designed to be small, simple and relatively featureless,
                     81: hopefully increasing its security.
1.7       wiz        82: .Ss OPTIONS
1.1       tls        83: The following options are available:
                     84: .Bl -tag -width xxxcgibin
                     85: .It Fl b
1.28      jmmv       86: Enables daemon mode, where
1.1       tls        87: .Nm
                     88: detaches from the current terminal, running in the background and
                     89: servicing HTTP requests.
                     90: .It Fl C Ar suffix cgihandler
1.28      jmmv       91: Adds a new CGI handler program for a particular file type.
1.1       tls        92: The
                     93: .Ar suffix
                     94: should be any normal file suffix, and the
                     95: .Ar cgihandler
                     96: should be a full path to an interpreter.
                     97: This option is the only way to enable CGI programs that exist
                     98: outside of the cgibin directory to be executed.
                     99: Multiple
                    100: .Fl C
                    101: options may be passed.
                    102: .It Fl c Ar cgibin
1.28      jmmv      103: Enables the CGI/1.1 interface.
1.1       tls       104: The
                    105: .Ar cgibin
                    106: directory is expected to contain the CGI programs to be used.
                    107: .Nm
                    108: looks for URL's in the form of
1.65.4.1! martin    109: .Em /cgi-bin/<scriptname>
1.1       tls       110: where
1.14      mrg       111: .Aq scriptname
1.1       tls       112: is a valid CGI program in the
                    113: .Ar cgibin
                    114: directory.
                    115: In other words, all CGI URL's must begin with
                    116: .Em \%/cgi-bin/ .
1.54      shm       117: Note that the CGI/1.1 interface is available with
1.1       tls       118: .Em ~user
1.54      shm       119: translation using
                    120: .Fl E
                    121: switch.
1.1       tls       122: .It Fl e
1.28      jmmv      123: Causes
1.1       tls       124: .Nm
                    125: to not clear the environment when used with either the
                    126: .Fl t
                    127: or
                    128: .Fl U
                    129: options.
1.14      mrg       130: .It Fl f
1.28      jmmv      131: Stops the
1.14      mrg       132: .Fl b
                    133: flag from
                    134: .Nm
                    135: detaching from the tty and going into the background.
1.60      agc       136: .It Fl G
                    137: Get the
                    138: .Nm
                    139: version string, print it on standard output, and exit.
1.1       tls       140: .It Fl H
1.28      jmmv      141: Causes directory index mode to hide files and directories
1.1       tls       142: that start with a period, except for
                    143: .Pa .. .
                    144: Also see
                    145: .Fl X .
                    146: .It Fl I Ar port
1.28      jmmv      147: Causes
1.30      mrg       148: .Nm
                    149: to use
1.1       tls       150: .Ar port
1.30      mrg       151: instead of the default
1.1       tls       152: .Dq http
                    153: port.
1.30      mrg       154: When used with the
1.1       tls       155: .Fl b
1.30      mrg       156: option, it changes the bound port.
                    157: Otherwise it forces redirections to use this port instead of the
                    158: value obtained via
                    159: .Xr getsockname 2 .
1.28      jmmv      160: .It Fl i Ar address
                    161: Causes
1.1       tls       162: .Ar address
1.35      pgoyette  163: to be used as the address to bind daemon mode.
1.1       tls       164: If otherwise unspecified, the address used to bind is derived from the
                    165: .Ar myname ,
                    166: which defaults to the name returned by
                    167: .Xr gethostname 3 .
1.13      mrg       168: Only the last
                    169: .Fl i
                    170: option is used.
1.28      jmmv      171: This option is only valid with the
                    172: .Fl b
                    173: option.
1.41      wiz       174: .It Fl L Ar prefix script
                    175: Adds a new Lua script for a particular prefix.
                    176: The
                    177: .Ar prefix
                    178: should be an arbitrary text, and the
                    179: .Ar script
                    180: should be a full path to a Lua script.
                    181: Multiple
                    182: .Fl L
                    183: options may be passed.
                    184: A separate Lua state is created for each prefix.
                    185: The Lua script can register callbacks using the
                    186: httpd.register_handler('<name>', function) Lua function,
                    187: which will trigger the execution of the Lua function
                    188: .Em function
                    189: when a URL in the form
                    190: .Em http://<hostname>/<prefix>/<name>
                    191: is being accessed.
                    192: The function is passed three tables as arguments, the server
                    193: environment, the request headers, and the decoded query string
1.63      abhinav   194: plus any data that was sent as application/x-www-form-urlencoded.
1.1       tls       195: .It Fl M Ar suffix type encoding encoding11
1.28      jmmv      196: Adds a new entry to the table that converts file suffixes to
1.1       tls       197: content type and encoding.
                    198: This option takes four additional arguments containing
                    199: the file prefix, its
                    200: .Dq Content-Type ,
1.7       wiz       201: .Dq Content-Encoding ,
1.1       tls       202: and
                    203: .Dq Content-Encoding
                    204: for HTTP/1.1 connections, respectively.
1.7       wiz       205: If any of these are a single dash
                    206: .Pq Dq - ,
                    207: the empty string is used instead.
1.1       tls       208: Multiple
                    209: .Fl M
                    210: options may be passed.
                    211: .It Fl n
1.28      jmmv      212: Stops
1.1       tls       213: .Nm
                    214: from doing IP address to name resolution of hosts for setting the
                    215: .Ev REMOTE_HOST
                    216: variable before running a CGI program.
                    217: This option has no effect without the
                    218: .Fl c
                    219: option.
1.26      jmmv      220: .It Fl P Ar pidfile
1.28      jmmv      221: Causes
1.26      jmmv      222: .Nm
1.65.4.1! martin    223: to create a PID file in
1.26      jmmv      224: .Ar pidfile
                    225: when run in daemon mode with the
                    226: .Fl b
                    227: option.
1.1       tls       228: .It Fl p Ar pubdir
1.28      jmmv      229: Changes the default user directory for
1.1       tls       230: .Em /~user/
                    231: translations from
                    232: .Dq public_html
                    233: to
                    234: .Ar pubdir .
                    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.65.4.1! martin    240: .It Fl T Ar type timeout
        !           241: Set the timeout for
        !           242: .Ar type
        !           243: to
        !           244: .Ar timeout .
        !           245: The valid values of
        !           246: .Ar type
        !           247: are
        !           248: .Dq initial timeout ,
        !           249: .Dq header timeout ,
        !           250: and
        !           251: .Dq request timeout .
        !           252: The default values are 30 seconds, 10 seconds and 600 seconds, respectively.
1.1       tls       253: .It Fl t Ar chrootdir
1.28      jmmv      254: Makes
1.1       tls       255: .Nm
1.28      jmmv      256: chroot to the specified directory
1.1       tls       257: before answering requests.
                    258: Every other path should be specified relative
                    259: to the new root, if this option is used.
                    260: Note that the current environment
                    261: is normally replaced with an empty environment with this option, unless the
                    262: .Fl e
                    263: option is also used.
                    264: .It Fl U Ar username
1.28      jmmv      265: Causes
1.1       tls       266: .Nm
                    267: to switch to the user and the groups of
                    268: .Ar username
                    269: after initialization.
                    270: This option, like
                    271: .Fl t
                    272: above, causes
                    273: .Nm
                    274: to clear the environment unless the
                    275: .Fl e
                    276: option is given.
                    277: .It Fl u
1.28      jmmv      278: Enables the transformation of Uniform Resource Locators of
1.1       tls       279: the form
                    280: .Em /~user/
1.16      mbalmer   281: into the directory
1.1       tls       282: .Pa ~user/public_html
                    283: (but see the
                    284: .Fl p
                    285: option above).
1.54      shm       286: .It Fl E
                    287: Enables CGI/1.1 interface for
                    288: .Em ~user
                    289: translation.
                    290: Note that enabling this support implies that users can run
                    291: commands as web server user, this may have security implications.
1.1       tls       292: .It Fl V
1.61      mrg       293: Sets the backup virtual host directory to the
                    294: .Ar slashdir
                    295: argument.
1.1       tls       296: If no directory exists in
                    297: .Ar virtualroot
                    298: for the request, then
                    299: .Ar slashdir
                    300: will be used.
1.65.4.1! martin    301: The default behavior is to return 404 (Not Found.)
1.1       tls       302: .It Fl v Ar virtualroot
1.28      jmmv      303: Enables virtual hosting support.
1.1       tls       304: Directories in
                    305: .Ar virtualroot
                    306: will be searched for a matching virtual host name, when parsing
                    307: the HTML request.
                    308: If a matching name is found, it will be used
                    309: as both the server's real name,
                    310: .Op Ar myname ,
                    311: and as the
                    312: .Ar slashdir .
                    313: See the
                    314: .Sx EXAMPLES
                    315: section for an example of using this option.
                    316: .It Fl X
1.28      jmmv      317: Enables directory indexing.
1.1       tls       318: A directory index will be generated only when the default file (i.e.
                    319: .Pa index.html
                    320: normally) is not present.
                    321: .It Fl x Ar index
1.28      jmmv      322: Changes the default file read for directories from
1.1       tls       323: .Dq index.html
                    324: to
                    325: .Ar index .
1.57      christos  326: .It Fl z Ar ciphers
                    327: Sets the list of SSL ciphers (see
                    328: .Xr SSL_CTX_set_cipher_list 3 ) .
1.1       tls       329: .It Fl Z Ar certificate_path privatekey_path
1.28      jmmv      330: Sets the path to the server certificate file and the private key file
1.65.4.1! martin    331: in PEM format.
1.6       jnemeth   332: It also causes
1.4       mrg       333: .Nm
                    334: to start SSL mode.
1.1       tls       335: .El
                    336: .Pp
                    337: Note that in
                    338: .Nm
                    339: versions 20031005 and prior that supported the
                    340: .Fl C
                    341: and
                    342: .Fl M
                    343: options, they took a single space-separated argument that was parsed.
                    344: since version 20040828, they take multiple options (2 in the case of
                    345: .Fl C
                    346: and 4 in the case of
                    347: .Fl M . )
1.7       wiz       348: .Ss INETD CONFIGURATION
1.1       tls       349: As
                    350: .Nm
                    351: uses
                    352: .Xr inetd 8
                    353: by default to process incoming TCP connections for HTTP requests
                    354: (but see the
                    355: .Fl b
                    356: option),
                    357: .Nm
                    358: has little internal networking knowledge.
1.58      mrg       359: (Indeed, you can run it on the command line with little change of
                    360: functionality.)
1.1       tls       361: A typical
                    362: .Xr inetd.conf 5
                    363: entry would be:
                    364: .Bd -literal
1.3       mrg       365: http stream tcp  nowait:600 _httpd /usr/libexec/httpd httpd /var/www
                    366: http stream tcp6 nowait:600 _httpd /usr/libexec/httpd httpd /var/www
1.1       tls       367: .Ed
                    368: .Pp
                    369: This would serve web pages from
                    370: .Pa /var/www
                    371: on both IPv4 and IPv6 ports.
                    372: The
                    373: .Em :600
                    374: changes the
                    375: requests per minute to 600, up from the
                    376: .Xr inetd 8
                    377: default of 40.
                    378: .Pp
                    379: Using the
                    380: .Nx
                    381: .Xr inetd 8 ,
                    382: you can provide multiple IP-address based HTTP servers by having multiple
                    383: listening ports with different configurations.
1.7       wiz       384: .Ss NOTES
1.1       tls       385: This server supports the
                    386: .Em HTTP/0.9 ,
1.7       wiz       387: .Em HTTP/1.0 ,
1.1       tls       388: and
                    389: .Em HTTP/1.1
1.4       mrg       390: standards.
                    391: Support for these protocols is very minimal and many optional features are
                    392: not supported.
1.1       tls       393: .Pp
                    394: .Nm
1.43      mrg       395: can be compiled without
                    396: CGI support (NO_CGIBIN_SUPPORT),
                    397: user transformations (NO_USER_SUPPORT),
                    398: directory index support (NO_DIRINDEX_SUPPORT),
                    399: daemon mode support (NO_DAEMON_MODE),
                    400: dynamic MIME content (NO_DYNAMIC_CONTENT),
1.64      abhinav   401: Lua support (NO_LUA_SUPPORT),
1.43      mrg       402: and SSL support (NO_SSL_SUPPORT)
                    403: by defining the listed macros when building
1.1       tls       404: .Nm .
1.65.4.1! martin    405: .Ss HTTP BASIC AUTHORIZATION
1.1       tls       406: .Nm
1.65.4.1! martin    407: has support for HTTP Basic Authorization.
1.3       mrg       408: If a file named
                    409: .Pa .htpasswd
                    410: exists in the directory of the current request,
                    411: .Nm
                    412: will restrict access to documents in that directory
                    413: using the RFC 2617 HTTP
                    414: .Dq Basic
                    415: authentication scheme.
                    416: .Pp
                    417: Note:
                    418: This does not recursively protect any sub-directories.
                    419: .Pp
                    420: The
                    421: .Pa .htpasswd
                    422: file contains lines delimited with a colon containing
1.65.4.1! martin    423: user names and passwords hashed with
1.3       mrg       424: .Xr crypt 3 ,
                    425: for example:
                    426: .Bd -literal
1.6       jnemeth   427: heather:$1$pZWI4tH/$DzDPl63i6VvVRv2lJNV7k1
1.3       mrg       428: jeremy:A.xewbx2DpQ8I
                    429: .Ed
                    430: .Pp
                    431: On
                    432: .Nx ,
                    433: the
                    434: .Xr pwhash 1
                    435: utility may be used to generate hashed passwords.
1.4       mrg       436: .Pp
1.6       jnemeth   437: While
1.4       mrg       438: .Nm
                    439: distributed with
                    440: .Nx
1.65.4.1! martin    441: has support for HTTP Basic Authorization enabled by default,
1.11      mrg       442: in the portable distribution it is excluded.
1.4       mrg       443: Compile
                    444: .Nm
                    445: with
                    446: .Dq -DDO_HTPASSWD
1.6       jnemeth   447: on the compiler command line to enable this support.
1.14      mrg       448: It may require linking with the crypt library, using
1.4       mrg       449: .Dq -lcrypt .
1.7       wiz       450: .Ss SSL SUPPORT
1.1       tls       451: .Nm
1.57      christos  452: has support for TLSv1.1 and TLSv1.2 protocols that are included by
1.6       jnemeth   453: default.
                    454: It requires linking with the crypto and ssl library, using
1.1       tls       455: .Dq -lcrypto -lssl .
                    456: To disable SSL SUPPORT compile
                    457: .Nm
                    458: with
                    459: .Dq -DNO_SSL_SUPPORT
                    460: on the compiler command line.
1.33      elric     461: .Ss COMPRESSION
                    462: .Nm
1.63      abhinav   463: supports a very basic form of compression.
1.33      elric     464: .Nm
1.34      wiz       465: will serve the requested file postpended with
                    466: .Dq Pa .gz
                    467: if it exists, it is readable, the client requested gzip compression, and
1.33      elric     468: the client did not make a ranged request.
1.8       wiz       469: .Sh FILES
                    470: .Nm
                    471: looks for a couple of special files in directories that allow certain features
                    472: to be provided on a per-directory basis.
                    473: In addition to the
                    474: .Pa .htpasswd
1.65.4.1! martin    475: used by HTTP basic authorization,
1.8       wiz       476: if a
                    477: .Pa .bzdirect
                    478: file is found (contents are irrelevant)
                    479: .Nm
                    480: will allow direct access even with the
                    481: .Fl r
                    482: option.
                    483: If a
                    484: .Pa .bzredirect
                    485: symbolic link is found,
                    486: .Nm
                    487: will perform a smart redirect to the target of this symlink.
                    488: The target is assumed to live on the same server.
1.54      shm       489: If target starts with slash then absolute redirection is performed,
                    490: otherwise it's handled as relative.
1.8       wiz       491: If a
                    492: .Pa .bzabsredirect
                    493: symbolic link is found,
                    494: .Nm
1.65.4.1! martin    495: will redirect to the absolute URL pointed to by this symlink.
1.8       wiz       496: This is useful to redirect to different servers.
1.54      shm       497: Two forms of redirection are supported - symbolic link without schema will use
                    498: .Em http://
                    499: as default i.e. link to
                    500: .Em NetBSD.org
                    501: will redirect to
                    502: .Em http://NetBSD.org/
                    503: Otherwise provided schema will be used i.e. symbolic link to
                    504: .Em ftp://NetBSD.org/
1.65.4.1! martin    505: will redirect to the provided URL.
        !           506: If a
        !           507: .Pa .bzremap
        !           508: file is found at the root of a (virtual) server, it is expected to contain
        !           509: rewrite mappings for URLs.
        !           510: .Pp
        !           511: These remappings are performed internally in the server before authentication
        !           512: happens and can be used to hide implementation details, like the CGI handler
        !           513: specific suffix for non cgi scripts in authorized directories.
        !           514: .Pp
        !           515: The map file consists of lines two paths separated by a colon, where the left
        !           516: side needs to exactly match a (sub) path of the request and will be replaced
        !           517: by the right side.
        !           518: .Pp
        !           519: The first match always wins.
        !           520: .Pp
        !           521: A
        !           522: .Pa .bzremap
        !           523: file could look like this:
        !           524: .Bd -literal
        !           525: /nic/update:/auth-dir/updipv4.pl
        !           526: .Ed
        !           527: .Pp
        !           528: The remap file should be short, access to it is slow and needs to happen
        !           529: on each request.
        !           530: If a request path needs to include a colon
        !           531: .Pq Li \&:
        !           532: character, it can be escaped
        !           533: with a backslash
        !           534: .Pq Li \e
        !           535: The right hand side of the colon is always used verbatim, no escape sequences
        !           536: are interpreted.
1.8       wiz       537: .Sh EXAMPLES
                    538: To configure set of virtual hosts, one would use an
                    539: .Xr inetd.conf 5
                    540: entry like:
                    541: .Bd -literal
                    542: http stream tcp  nowait:600 _httpd /usr/libexec/httpd httpd -v /var/vroot /var/www
                    543: .Ed
                    544: .Pp
                    545: and inside
                    546: .Pa /var/vroot
                    547: create a directory (or a symlink to a directory) with the same name as
                    548: the virtual host, for each virtual host.
1.45      mrg       549: Lookups for these names are done in a case-insensitive manner, and may
                    550: include the port number part of the request, allowing for distinct
                    551: virtual hosts on the same name.
1.8       wiz       552: .Pp
                    553: To use
                    554: .Nm
                    555: with PHP, one must use the
                    556: .Fl C
                    557: option to specify a CGI handler for a particular file type.
1.25      reed      558: Typically this will be like:
1.8       wiz       559: .Bd -literal
1.59      mrg       560: httpd -C .php /usr/pkg/bin/php-cgi /var/www
1.8       wiz       561: .Ed
1.65.4.1! martin    562: .Pp
        !           563: Note that a plain script interpreter can not be used directly as a cgihandler,
        !           564: as there are no command line options passed from
        !           565: .Nm
        !           566: to avoid security issues.
        !           567: .Pp
        !           568: If no CGI-aware wrapper exists, a simple shell script like the following
        !           569: might do.
        !           570: .Pp
        !           571: It would be invoked like:
        !           572: .Bd -literal
        !           573: httpd -C .pl /www-scripts/bin/run.perl /var/www
        !           574: .Ed
        !           575: and the script could look like:
        !           576: .Bd -literal
        !           577: #! /bin/sh
        !           578:
        !           579: if [ -r "$SCRIPT_FILENAME" -a -x "$SCRIPT_FILENAME" ]; then
        !           580:        exec /usr/pkg/bin/perl "$SCRIPT_FILENAME"
        !           581: fi
        !           582:
        !           583: exit 1
        !           584: .Ed
1.1       tls       585: .Sh SEE ALSO
                    586: .Xr inetd.conf 5 ,
                    587: .Xr inetd 8
                    588: .Sh HISTORY
                    589: .Nm
1.50      mrg       590: was first written in perl, based on another perl http server
1.1       tls       591: called
                    592: .Dq tinyhttpd .
                    593: It was then rewritten from scratch in perl, and then once again in C.
1.12      wiz       594: From
1.3       mrg       595: .Dq bozohttpd
1.11      mrg       596: version 20060517, it has been integrated into
                    597: .Nx .
1.1       tls       598: The focus has always been simplicity and security, with minimal features
                    599: and regular code audits.
1.4       mrg       600: This manual documents
                    601: .Nm
1.65.4.1! martin    602: version 20181123.
1.1       tls       603: .Sh AUTHORS
1.41      wiz       604: .An -nosplit
1.1       tls       605: .Nm
1.41      wiz       606: was written by
                    607: .An Matthew R. Green
                    608: .Aq Mt mrg@eterna.com.au .
1.1       tls       609: .Pp
                    610: The large list of contributors includes:
                    611: .Bl -dash
                    612: .It
1.41      wiz       613: .An Marc Balmer
                    614: .Aq Mt mbalmer@NetBSD.org
1.39      mbalmer   615: added Lua support for dynamic content creation
                    616: .It
1.41      wiz       617: .An Christoph Badura
                    618: .Aq Mt bad@bsd.de
1.4       mrg       619: provided Range: header support
                    620: .It
1.41      wiz       621: .An Sean Boudreau
                    622: .Aq Mt seanb@NetBSD.org
1.24      wiz       623: provided a security fix for virtual hosting
1.23      mrg       624: .It
1.41      wiz       625: .An Julian Coleman
                    626: .Aq Mt jdc@coris.org.uk
1.1       tls       627: provided an IPv6 bugfix
                    628: .It
1.41      wiz       629: .An Chuck Cranor
                    630: .Aq Mt chuck@research.att.com
1.1       tls       631: provided cgi-bin support fixes, and more
                    632: .It
1.43      mrg       633: .An Alistair G. Crooks
                    634: .Aq Mt agc@NetBSD.org
1.50      mrg       635: cleaned up many internal interfaces, made
                    636: .Nm
                    637: linkable as a library and provided the Lua binding.
1.43      mrg       638: .It
1.41      wiz       639: .An DEGROOTE Arnaud
                    640: .Aq Mt degroote@NetBSD.org
1.11      mrg       641: provided a fix for daemon mode
                    642: .It
1.41      wiz       643: .An Andrew Doran
                    644: .Aq Mt ad@NetBSD.org
1.1       tls       645: provided directory indexing support
                    646: .It
1.41      wiz       647: .An Per Ekman
                    648: .Aq Mt pek@pdc.kth.se
1.1       tls       649: provided a fix for a minor (non-security) buffer overflow condition
                    650: .It
1.41      wiz       651: .An Roland Dowdeswell
                    652: .Aq Mt elric@NetBSD.org
1.37      mrg       653: added support for serving gzipped files and better SSL handling
                    654: .It
1.41      wiz       655: .An Jun-ichiro itojun Hagino, KAME
                    656: .Aq Mt itojun@iijlab.net
1.1       tls       657: provided initial IPv6 support
                    658: .It
1.41      wiz       659: .An Martin Husemann
                    660: .Aq Mt martin@NetBSD.org
1.65.4.1! martin    661: provided .bzabsredirect and .bzredir support, and fixed various
        !           662: redirection issues
1.1       tls       663: .It
1.41      wiz       664: .An Arto Huusko
                    665: .Aq Mt arto.huusko@pp2.inet.fi
1.11      mrg       666: provided fixes cgi-bin
                    667: .It
1.41      wiz       668: .An Roland Illig
                    669: .Aq Mt roland.illig@gmx.de
1.1       tls       670: provided some off-by-one fixes
                    671: .It
1.41      wiz       672: .An Zak Johnson
                    673: .Aq Mt zakj@nox.cx
1.11      mrg       674: provided cgi-bin enhancements
                    675: .It
1.41      wiz       676: .An Nicolas Jombart
                    677: .Aq Mt ecu@ipv42.net
1.65.4.1! martin    678: provided fixes for HTTP basic authorization support
1.1       tls       679: .It
1.41      wiz       680: .An Antti Kantee
                    681: .Aq Mt pooka@NetBSD.org
1.65.4.1! martin    682: provided fixes for HTTP basic authorization support
1.37      mrg       683: .It
1.41      wiz       684: .An Thomas Klausner
                    685: .Aq Mt wiz@NetBSD.org
1.1       tls       686: provided many fixes and enhancements for the man page
                    687: .It
1.49      mrg       688: .An Mateusz Kocielski
                    689: .Aq Mt shm@NetBSD.org
1.53      wiz       690: fixed memory leaks, various issues with userdir support,
1.52      shm       691: information disclosure issues, added support for using CGI handlers
1.59      mrg       692: with directory indexing, found several security issues and provided
                    693: various other fixes.
1.49      mrg       694: .It
1.43      mrg       695: .An Arnaud Lacombe
                    696: .Aq Mt alc@NetBSD.org
                    697: provided some clean up for memory leaks
                    698: .It
1.41      wiz       699: .An Johnny Lam
                    700: .Aq Mt jlam@NetBSD.org
1.1       tls       701: provided man page fixes
                    702: .It
1.65      mrg       703: .An Dennis Lindroos
                    704: .Aq Mt denafcm@gmail.com
                    705: provided a cgi-bin fix
                    706: .It
1.41      wiz       707: .An Julio Merino
                    708: .Aq Mt jmmv@NetBSD.org
1.37      mrg       709: Added the
                    710: .Fl P
1.54      shm       711: option (pidfile support) and provided some man page fixes.
1.37      mrg       712: .It
1.41      wiz       713: .An Luke Mewburn
                    714: .Aq Mt lukem@NetBSD.org
1.7       wiz       715: provided many various fixes, including cgi-bin fixes and enhancements,
1.65.4.1! martin    716: HTTP basic authorization support and much code clean up
1.1       tls       717: .It
1.45      mrg       718: .An Rajeev V. Pillai
                    719: .Aq Mt rajeev_v_pillai@yahoo.com
                    720: provided several fixes for virtual hosting
                    721: .It
1.41      wiz       722: .An Jeremy C. Reed
                    723: .Aq Mt reed@NetBSD.org
1.4       mrg       724: provided several clean up fixes, and man page updates
                    725: .It
1.41      wiz       726: .An Scott Reynolds
                    727: .Aq Mt scottr@NetBSD.org
1.1       tls       728: provided various fixes
                    729: .It
1.41      wiz       730: .An Tyler Retzlaff
                    731: .Aq Mt rtr@eterna.com.au
1.4       mrg       732: provided SSL support, cgi-bin fixes and much other random other stuff
1.1       tls       733: .It
1.41      wiz       734: .An rudolf
                    735: .Aq Mt netbsd@eq.cz
1.23      mrg       736: provided minor compile fixes and a CGI content map fix
                    737: .It
1.41      wiz       738: .An Steve Rumble
                    739: .Aq Mt rumble@ephemeral.org
1.1       tls       740: provided the
                    741: .Fl V
                    742: option.
                    743: .It
1.41      wiz       744: .An Thor Lancelot Simon
                    745: .Aq Mt tls@NetBSD.org
1.37      mrg       746: enhanced cgi-bin support.
                    747: .It
1.41      wiz       748: .An Joerg Sonnenberger
                    749: .Aq Mt joerg@NetBSD.org
1.11      mrg       750: implemented If-Modified-Since support
                    751: .It
1.41      wiz       752: .An ISIHARA Takanori
                    753: .Aq Mt ishit@oak.dti.ne.jp
1.1       tls       754: provided a man page fix
                    755: .It
1.41      wiz       756: .An Holger Weiss
                    757: .Aq Mt holger@CIS.FU-Berlin.DE
1.65.4.1! martin    758: provided http authorization fixes
1.11      mrg       759: .It
1.41      wiz       760: .Aq Mt xs@kittenz.org
1.1       tls       761: provided chroot and change-to-user support, and other various fixes
1.11      mrg       762: .It
1.41      wiz       763: Coyote Point provided various CGI fixes.
1.1       tls       764: .El
                    765: .Pp
                    766: There are probably others I have forgotten (let me know if you care)
1.11      mrg       767: .Pp
                    768: Please send all updates to
                    769: .Nm
                    770: to
1.41      wiz       771: .Aq Mt mrg@eterna.com.au
1.36      ryoon     772: for inclusion in future releases.
1.1       tls       773: .Sh BUGS
                    774: .Nm
1.27      mbalmer   775: does not handle HTTP/1.1 chunked input from the client yet.

CVSweb <webmaster@jp.NetBSD.org>