OpenBSD CVS

CVS log for src/usr.sbin/httpd/httpd.c


[BACK] Up to [local] / src / usr.sbin / httpd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.74 / (download) - annotate - [select for diffs], Mon Apr 8 12:45:18 2024 UTC (2 months ago) by tobhe
Branch: MAIN
CVS Tags: HEAD
Changes since 1.73: +1 -3 lines
Diff to previous 1.73 (colored)

Call daemon() only in parent and before proc_exec() to avoid orphaning child
processes. Synced from relayd.

ok kn@

Revision 1.73 / (download) - annotate - [select for diffs], Fri Sep 2 07:38:14 2022 UTC (21 months ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, OPENBSD_7_2_BASE, OPENBSD_7_2
Changes since 1.72: +3 -3 lines
Diff to previous 1.72 (colored)

Make newer mime type definitions take precedence over existing ones.

Patch from Ben Fuller <ben -AT- bvnf -DOT- space>,
helped along by florian@
ok florian@ and some mumblings from claudio who does not want okays in httpd.

Revision 1.72 / (download) - annotate - [select for diffs], Wed Mar 2 11:10:43 2022 UTC (2 years, 3 months ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_7_1_BASE, OPENBSD_7_1
Changes since 1.71: +2 -17 lines
Diff to previous 1.71 (colored)

Nothing uses kv_flags.

John (j AT bitminer.ca) pointed out that we didn't correctly
initialize struct kv and might use slower KV_FLAG_GLOBBING path in
kv_find depending on stack garbage. Instead of fixing the
initialization just delete kv_flags from struct kv.

OK claudio, tb

Revision 1.71 / (download) - annotate - [select for diffs], Wed Jan 27 07:21:52 2021 UTC (3 years, 4 months ago) by deraadt
Branch: MAIN
CVS Tags: OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9
Changes since 1.70: +3 -1 lines
Diff to previous 1.70 (colored)

these programs (with common ancestry) had a -fno-common problem related
to privsep_procid.
ok mortimer

Revision 1.70 / (download) - annotate - [select for diffs], Mon Aug 3 11:05:24 2020 UTC (3 years, 10 months ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_6_8_BASE, OPENBSD_6_8
Changes since 1.69: +1 -61 lines
Diff to previous 1.69 (colored)

remove unused functions
from Ross L Richardson <openbsd AT rlr DOT id DOT au>, Thanks
ok claudio@

Revision 1.69 / (download) - annotate - [select for diffs], Thu Jul 30 21:06:19 2020 UTC (3 years, 10 months ago) by benno
Branch: MAIN
Changes since 1.68: +1 -54 lines
Diff to previous 1.68 (colored)

Remove the unused function canonicalize_host(), it was copied from relayd.
Found by Ross L Richardson, Thanks.

Revision 1.68 / (download) - annotate - [select for diffs], Sun Sep 9 21:06:51 2018 UTC (5 years, 9 months ago) by bluhm
Branch: MAIN
CVS Tags: OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.67: +2 -2 lines
Diff to previous 1.67 (colored)

During the fork+exec implementation, daemon(3) was moved after
proc_init().  As a consequence httpd(8) and relayd(8) child processes
did not detach from the terminal anymore.  Dup /dev/null to the
stdio file descriptors in the children.
OK benno@

Revision 1.67 / (download) - annotate - [select for diffs], Sun May 28 10:37:26 2017 UTC (7 years ago) by benno
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2
Changes since 1.66: +3 -3 lines
Diff to previous 1.66 (colored)

use __func__ in log messages.
From Hiltjo Posthuma hiltjo -AT codemadness -DOT- org, thanks!
ok florian, claudio

Revision 1.66 / (download) - annotate - [select for diffs], Tue Apr 4 20:16:09 2017 UTC (7 years, 2 months ago) by claudio
Branch: MAIN
Changes since 1.65: +2 -2 lines
Diff to previous 1.65 (colored)

Do not purge the CONFIG_SERVERS config in the parent. The ticket code uses
the servers config for its rekeying handling. Without this no rekeying happens
and httpd stops working. Learned the hard way by me and beck@
OK reyk@

Revision 1.65 / (download) - annotate - [select for diffs], Sat Mar 25 17:25:34 2017 UTC (7 years, 2 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.64: +43 -1 lines
Diff to previous 1.64 (colored)

Implement TLS ticket support in httpd. Off by default. Use
	tls ticket lifetime default
to turn it on with a 2h ticket lifetime.
Rekeying happens after a quarter of that time.
OK reky@ and bob@

Revision 1.64 / (download) - annotate - [select for diffs], Mon Jan 23 04:25:05 2017 UTC (7 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.63: +2 -3 lines
Diff to previous 1.63 (colored)

Split pledge "ioctl" into "tape" and "bpf", and allow SIOCGIFGROUP only
upon "inet".  Adjust the 4 programs that care about this.

Revision 1.63 / (download) - annotate - [select for diffs], Mon Jan 9 14:49:22 2017 UTC (7 years, 5 months ago) by reyk
Branch: MAIN
Changes since 1.62: +2 -2 lines
Diff to previous 1.62 (colored)

Stop accessing verbose and debug variables from log.c directly.

This replaces log_verbose() and "extern int verbose" with the two functions
log_setverbose() and log_getverbose().

Pointed out by benno@
OK krw@ eric@ gilles@ (OK gilles@ for the snmpd bits as well)

Revision 1.62 / (download) - annotate - [select for diffs], Wed Sep 28 12:01:04 2016 UTC (7 years, 8 months ago) by reyk
Branch: MAIN
Changes since 1.61: +5 -3 lines
Diff to previous 1.61 (colored)

sync proc.c from switchd, includes minor cast qual fix and removal of p_env.

Revision 1.61 / (download) - annotate - [select for diffs], Fri Sep 2 11:25:14 2016 UTC (7 years, 9 months ago) by reyk
Branch: MAIN
Changes since 1.60: +5 -21 lines
Diff to previous 1.60 (colored)

proc.c tweaks: Rename proc_listento() to proc_accept() as it is the
receiving side of proc_connect().  Move some code from main into
proc_init(), the function is now called by parent and children, not
just the parent and it is less copy + paste for other daemons.

OK florian@

Revision 1.60 / (download) - annotate - [select for diffs], Thu Sep 1 09:47:03 2016 UTC (7 years, 9 months ago) by rzalamena
Branch: MAIN
Changes since 1.59: +46 -9 lines
Diff to previous 1.59 (colored)

Teach httpd/proc.c how to fork+exec.

This commit implemented the basic functions to proc.c to make it not rely
on global variables, malloc()ed memory and CLOEXEC pipes.

Fix child proc titles from reyk@
ok reyk@, florian@

Revision 1.59 / (download) - annotate - [select for diffs], Tue Aug 30 13:46:37 2016 UTC (7 years, 9 months ago) by rzalamena
Branch: MAIN
Changes since 1.58: +3 -51 lines
Diff to previous 1.58 (colored)

Terminate daemon using the socket status instead of watching SIGCHLD or
kill()ing child process.

"Looks good to me" millert@
ok benno@

Revision 1.58 / (download) - annotate - [select for diffs], Fri Aug 26 12:24:21 2016 UTC (7 years, 9 months ago) by rzalamena
Branch: MAIN
Changes since 1.57: +1 -2 lines
Diff to previous 1.57 (colored)

Kill the ps_ninstances from proc.c.

We got the same information in ps_instances[proc] (more accurate) and
we avoid allocating unnecessary memory for pipe storage.

ok reyk@

Revision 1.57 / (download) - annotate - [select for diffs], Tue Aug 16 18:41:57 2016 UTC (7 years, 9 months ago) by tedu
Branch: MAIN
Changes since 1.56: +1 -2 lines
Diff to previous 1.56 (colored)

stop including sys/param.h for nitems. define locally as needed.
ok natano reyk

Revision 1.56 / (download) - annotate - [select for diffs], Fri Jun 10 12:09:48 2016 UTC (8 years ago) by florian
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.55: +2 -2 lines
Diff to previous 1.55 (colored)

& expands to the maximum amount of needed space; fix comment.
Pointed out by Frank Schoep, thanks!

Revision 1.55 / (download) - annotate - [select for diffs], Sun May 22 19:19:21 2016 UTC (8 years ago) by jung
Branch: MAIN
Changes since 1.54: +9 -5 lines
Diff to previous 1.54 (colored)

fix unbalanced va_start and va_end macros

from Hiltjo Posthuma

"do." deraadt

Revision 1.54 / (download) - annotate - [select for diffs], Tue Feb 2 17:51:11 2016 UTC (8 years, 4 months ago) by sthen
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.53: +1 -3 lines
Diff to previous 1.53 (colored)

Remove setproctitle() for the parent process. Because rc.d(8) uses process
titles (including flags) to distinguish between daemons, this makes it
possible to manage multiple copies of a daemon using the normal infrastructure
by symlinking rc.d scripts to a new name. ok jung@ ajacoutot@, smtpd ok gilles@

Revision 1.53 / (download) - annotate - [select for diffs], Thu Dec 3 11:46:25 2015 UTC (8 years, 6 months ago) by reyk
Branch: MAIN
Changes since 1.52: +3 -3 lines
Diff to previous 1.52 (colored)

Remove unnecessary NULL checks before free().

From Jan Schreiber

Revision 1.52 / (download) - annotate - [select for diffs], Thu Dec 3 07:01:29 2015 UTC (8 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.51: +2 -2 lines
Diff to previous 1.51 (colored)

the grammar can prompt DNS lookups, so pledge "dns" also.
from Gregor Best, discussed with florian

Revision 1.51 / (download) - annotate - [select for diffs], Wed Dec 2 15:13:00 2015 UTC (8 years, 6 months ago) by reyk
Branch: MAIN
Changes since 1.50: +4 -7 lines
Diff to previous 1.50 (colored)

sync with relayd, use proc_compose()

Revision 1.50 / (download) - annotate - [select for diffs], Mon Nov 23 20:56:14 2015 UTC (8 years, 6 months ago) by reyk
Branch: MAIN
Changes since 1.49: +2 -2 lines
Diff to previous 1.49 (colored)

Retire socket_set_blockmode() in favor of the SOCK_NONBLOCK type flag.
As done in iked and snmpd.

OK jung@

Revision 1.49 / (download) - annotate - [select for diffs], Sun Nov 22 13:27:13 2015 UTC (8 years, 6 months ago) by reyk
Branch: MAIN
Changes since 1.48: +6 -3 lines
Diff to previous 1.48 (colored)

Update log.c: change fatal() and fatalx() into variadic functions,
include the process name, and replace all calls of fatal*(NULL) with
fatal(__func__) for better debugging.

OK benno@

Revision 1.48 / (download) - annotate - [select for diffs], Sat Nov 21 12:40:59 2015 UTC (8 years, 6 months ago) by reyk
Branch: MAIN
Changes since 1.47: +77 -1 lines
Diff to previous 1.47 (colored)

Move local logging functions into httpd.c, and sync log.c with relayd -
both daemons are now sharing the same file.  No functional changes.

Revision 1.47 / (download) - annotate - [select for diffs], Thu Nov 19 21:32:53 2015 UTC (8 years, 6 months ago) by mmcc
Branch: MAIN
Changes since 1.46: +3 -8 lines
Diff to previous 1.46 (colored)

Simplify all instances of get_string() and get_data() using malloc() and
strndup().

ok millert@

Revision 1.46 / (download) - annotate - [select for diffs], Thu Nov 5 18:00:43 2015 UTC (8 years, 7 months ago) by florian
Branch: MAIN
Changes since 1.45: +5 -1 lines
Diff to previous 1.45 (colored)

pledge(2) for httpd.

1) The main process listens on sockets and accepts connections. It
creates and opens log files, creates and kills child processes. On
start up and on receiving a HUP signal it parses the configuration. It
passes on file descriptors for logging or requests to it's children.
2) The logger process writes log messages to a file descriptor passed
in from the main process.
3) The server process reads the request from a file descriptor passed
in from the main process. It reads a file or creates a directory index
to send a response.
Additionally this process handles fastcgi requests. It connects to
AF_UNIX, AF_INET or AF_INET6 sockets. A re-factoring might make it
possible to drop the additional fastcgi privileges when only static
files are served.

with deraadt@ some time ago
prodding & OK deraadt@
tweaks and OK reyk@

Revision 1.45 / (download) - annotate - [select for diffs], Sat Oct 31 10:10:44 2015 UTC (8 years, 7 months ago) by jung
Branch: MAIN
Changes since 1.44: +2 -2 lines
Diff to previous 1.44 (colored)

revert -r1.42 as it breaks slowcgi and php-fpm setups as reported by jturner

Revision 1.44 / (download) - annotate - [select for diffs], Wed Oct 28 15:50:04 2015 UTC (8 years, 7 months ago) by mmcc
Branch: MAIN
Changes since 1.43: +5 -11 lines
Diff to previous 1.43 (colored)

Remove a few more NULL-checks before free.

Revision 1.43 / (download) - annotate - [select for diffs], Wed Oct 28 15:45:51 2015 UTC (8 years, 7 months ago) by mmcc
Branch: MAIN
Changes since 1.42: +2 -3 lines
Diff to previous 1.42 (colored)

While I'm in here, drop a NULL-check before free.

Revision 1.42 / (download) - annotate - [select for diffs], Mon Oct 26 11:03:29 2015 UTC (8 years, 7 months ago) by jung
Branch: MAIN
Changes since 1.41: +2 -2 lines
Diff to previous 1.41 (colored)

fix PATH_INFO for / requests

diff from Denis Fondras

ok reyk

Revision 1.41 / (download) - annotate - [select for diffs], Wed Oct 14 08:02:38 2015 UTC (8 years, 7 months ago) by reyk
Branch: MAIN
Changes since 1.40: +3 -2 lines
Diff to previous 1.40 (colored)

Two more char -> unsigned char in ctype functions.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Oct 13 07:57:13 2015 UTC (8 years, 7 months ago) by reyk
Branch: MAIN
Changes since 1.39: +4 -3 lines
Diff to previous 1.39 (colored)

Pass unsigned chars to ctype functions.

From Michael McConville

Revision 1.39 / (download) - annotate - [select for diffs], Thu Aug 20 13:00:23 2015 UTC (8 years, 9 months ago) by reyk
Branch: MAIN
Changes since 1.38: +17 -17 lines
Diff to previous 1.38 (colored)

Change httpd(8) to use C99-style fixed-width integers (uintN_t instead
of u_intN_t) and replace u_int with unsigned int.  Mixing both
variants is a bad style and most contributors seem to prefer this
style; it also helps us to get used to it, portability, and
standardization.

Theoretically no binary change, except one in practice: httpd.o has a
different checksum because gcc with -O2 pads/optimizes "struct
privsep" differently when using "unsigned int" instead "u_int" for the
affected members.  "u_int" is just a typedef of "unsigned int", -O0
doesn't build the difference and clang with -O2 doesn't do it either -
it is just another curiosity from gcc-land.

OK semarie@

Revision 1.38 / (download) - annotate - [select for diffs], Sat Jul 18 06:00:43 2015 UTC (8 years, 10 months ago) by reyk
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.37: +17 -2 lines
Diff to previous 1.37 (colored)

Allow to change the default media type globally or per-location,
eg. default type text/html.

OK florian@

Revision 1.37 / (download) - annotate - [select for diffs], Wed Jun 3 02:24:36 2015 UTC (9 years ago) by millert
Branch: MAIN
Changes since 1.36: +10 -4 lines
Diff to previous 1.36 (colored)

Do not assume that asprintf() clears the pointer on failure, which
is non-portable.  Also add missing asprintf() return value checks.
OK deraadt@ guenther@ doug@

Revision 1.36 / (download) - annotate - [select for diffs], Thu May 28 17:08:09 2015 UTC (9 years ago) by florian
Branch: MAIN
Changes since 1.35: +4 -2 lines
Diff to previous 1.35 (colored)

Do not try to unlink the control socket in an unprivileged child
process on shutdown.
Found while working on tame(2).
OK benno@

Revision 1.35 / (download) - annotate - [select for diffs], Mon Feb 23 18:43:18 2015 UTC (9 years, 3 months ago) by reyk
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.34: +34 -1 lines
Diff to previous 1.34 (colored)

Allow to specify CGI variables as macros in redirection strings, eg.
block return 301 "http://www.example.com/$REQUEST_URI"

OK tedu@ florian@

Revision 1.34 / (download) - annotate - [select for diffs], Thu Feb 12 10:05:29 2015 UTC (9 years, 3 months ago) by reyk
Branch: MAIN
Changes since 1.33: +4 -4 lines
Diff to previous 1.33 (colored)

Rename escape_uri() to url_encode() because it is the opposite of
url_decode().  No functional change.

Revision 1.33 / (download) - annotate - [select for diffs], Tue Feb 10 08:12:29 2015 UTC (9 years, 3 months ago) by florian
Branch: MAIN
Changes since 1.32: +57 -1 lines
Diff to previous 1.32 (colored)

Encode directory listings.
Problem pointed out by remco AT d-compu.dyndns.org some time ago.
Input / OK reyk@

Revision 1.32 / (download) - annotate - [select for diffs], Sun Feb 8 00:00:59 2015 UTC (9 years, 4 months ago) by reyk
Branch: MAIN
Changes since 1.31: +2 -2 lines
Diff to previous 1.31 (colored)

spacing

Revision 1.31 / (download) - annotate - [select for diffs], Wed Jan 21 22:21:05 2015 UTC (9 years, 4 months ago) by reyk
Branch: MAIN
Changes since 1.30: +4 -5 lines
Diff to previous 1.30 (colored)

httpd is based on relayd and had included many headers that are only
needed by its ancestor.  jsg@, include-what-you-use, and some manual
review helped to cleanup the headers (take iwyu with a grain of salt).
Based on common practice, httpd.h now also includes the necessary
headers for itself.

OK florian@

Revision 1.30 / (download) - annotate - [select for diffs], Mon Jan 19 19:37:50 2015 UTC (9 years, 4 months ago) by reyk
Branch: MAIN
Changes since 1.29: +46 -1 lines
Diff to previous 1.29 (colored)

Decouple auth parameters from struct server_config into struct auth.

OK florian@

Revision 1.29 / (download) - annotate - [select for diffs], Fri Jan 16 06:40:17 2015 UTC (9 years, 4 months ago) by deraadt
Branch: MAIN
Changes since 1.28: +6 -2 lines
Diff to previous 1.28 (colored)

Replace <sys/param.h> with <limits.h> and other less dirty headers where
possible.  Annotate <sys/param.h> lines with their current reasons.  Switch
to PATH_MAX, NGROUPS_MAX, HOST_NAME_MAX+1, LOGIN_NAME_MAX, etc.  Change
MIN() and MAX() to local definitions of MINIMUM() and MAXIMUM() where
sensible to avoid pulling in the pollution.  These are the files confirmed
through binary verification.
ok guenther, millert, doug (helped with the verification protocol)

Revision 1.28 / (download) - annotate - [select for diffs], Thu Dec 11 17:06:55 2014 UTC (9 years, 5 months ago) by schwarze
Branch: MAIN
Changes since 1.27: +7 -5 lines
Diff to previous 1.27 (colored)

When scanning backwards for the last dot in a filename,
stop at the '/' marking the beginning of the filename.
This allows to configure a Content-Type for a filename without a dot.
OK reyk@

Revision 1.27 / (download) - annotate - [select for diffs], Thu Dec 4 02:44:42 2014 UTC (9 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.26: +1 -4 lines
Diff to previous 1.26 (colored)

stop viral header propagation. none of this code uses sys/hash.h
from Max Fillinger

Revision 1.26 / (download) - annotate - [select for diffs], Sat Nov 22 00:24:22 2014 UTC (9 years, 6 months ago) by tedu
Branch: MAIN
Changes since 1.25: +3 -3 lines
Diff to previous 1.25 (colored)

use size_t where appropriate. ok deraadt reyk

Revision 1.25 / (download) - annotate - [select for diffs], Fri Nov 21 17:49:10 2014 UTC (9 years, 6 months ago) by deraadt
Branch: MAIN
Changes since 1.24: +2 -2 lines
Diff to previous 1.24 (colored)

white space begone

Revision 1.17.4.1 / (download) - annotate - [select for diffs], Thu Nov 20 07:48:45 2014 UTC (9 years, 6 months ago) by jasper
Branch: OPENBSD_5_6
Changes since 1.17: +101 -12 lines
Diff to previous 1.17 (colored) next main 1.18 (colored)

httpd was developed very rapidly in the weeks before 5.6 release,
and it has a few flaws.  It would be nice to get these flaws fully
remediated before the next release, and that requires the community
to want to use it.
Therefore here is a "jumbo" patch that brings in the most important fixes.

committing on behalf of reyk@

Revision 1.24 / (download) - annotate - [select for diffs], Tue Nov 11 15:54:45 2014 UTC (9 years, 6 months ago) by beck
Branch: MAIN
Changes since 1.23: +7 -1 lines
Diff to previous 1.23 (colored)

Allow the log directory to be configurable in the config file, rather than
fixed as /logs within the chroot.  As this httpd is properly privesp'ed this
has the nice property of allowing us to put the logs outside the chroot if
we want to.
ok reyk@

Revision 1.23 / (download) - annotate - [select for diffs], Wed Oct 22 09:48:03 2014 UTC (9 years, 7 months ago) by reyk
Branch: MAIN
Changes since 1.22: +41 -1 lines
Diff to previous 1.22 (colored)

URL-decode the request path.

Tested by ajacoutot@ and others
OK doug@

Revision 1.22 / (download) - annotate - [select for diffs], Mon Sep 29 19:30:47 2014 UTC (9 years, 8 months ago) by deraadt
Branch: MAIN
Changes since 1.21: +2 -2 lines
Diff to previous 1.21 (colored)

whitespace spotted while studying the code

Revision 1.21 / (download) - annotate - [select for diffs], Fri Sep 5 10:04:20 2014 UTC (9 years, 9 months ago) by reyk
Branch: MAIN
Changes since 1.20: +11 -1 lines
Diff to previous 1.20 (colored)

Remove a limitation that only allowed to specify a server name once.
The key has been changed to server name + address + port and now it is
possible to use the same server name for multiple servers with
different addresses, eg. http://www.example.com and
https://www.example.com/.

OK doug@ florian@

Revision 1.20 / (download) - annotate - [select for diffs], Mon Sep 1 09:32:43 2014 UTC (9 years, 9 months ago) by reyk
Branch: MAIN
Changes since 1.19: +35 -1 lines
Diff to previous 1.19 (colored)

Replace the code to get the FastCGI Status header with a proper way to
parse and write the headers using the http response descriptor.  This
allows to add other tweaks, like support for chunked encoding, later.

OK florian@

Revision 1.19 / (download) - annotate - [select for diffs], Wed Aug 13 16:04:28 2014 UTC (9 years, 9 months ago) by reyk
Branch: MAIN
Changes since 1.18: +18 -13 lines
Diff to previous 1.18 (colored)

Provide a failsafe version of the path_info() function that doesn't
need a temporary path variable.  Based on an initial diff from
chrisz@.

"Commit any failsafe version and I'm ok with it" chrisz@

Revision 1.18 / (download) - annotate - [select for diffs], Wed Aug 13 08:08:55 2014 UTC (9 years, 9 months ago) by chrisz
Branch: MAIN
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

fix early loop termination in httpd path_info()
without this fix httpd always put at least the first
path component in SCRIPT_NAME even when it did not exist.
Now for completely non-existant paths everything goes into
PATH_INFO.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Aug 5 15:36:59 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE
Branch point for: OPENBSD_5_6
Changes since 1.16: +7 -1 lines
Diff to previous 1.16 (colored)

Improve logging to allow per- server/location log files.  The log
files can also be owned by root now: they're opened by the parent and
send to the logger process with fd passing.  This also works with reload.

ok deraadt@

Revision 1.16 / (download) - annotate - [select for diffs], Tue Aug 5 09:24:21 2014 UTC (9 years, 10 months ago) by jsg
Branch: MAIN
Changes since 1.15: +5 -1 lines
Diff to previous 1.15 (colored)

add a config option to specify the chroot directory
ok reyk@

Revision 1.15 / (download) - annotate - [select for diffs], Mon Aug 4 15:49:28 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.14: +57 -3 lines
Diff to previous 1.14 (colored)

Add initial support for log files in /var/www/logs/.  Logging with
syslog is still supported but disabled by default.

ok deraadt@

Revision 1.14 / (download) - annotate - [select for diffs], Mon Aug 4 14:49:24 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.13: +26 -1 lines
Diff to previous 1.13 (colored)

Implement PATH_INFO and add DOCUMENT_ROOT.
PATH_INFO was requested by naddy@ who successfully tested it with "cvsweb".

ok naddy@

Revision 1.13 / (download) - annotate - [select for diffs], Mon Aug 4 11:09:25 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.12: +1 -3 lines
Diff to previous 1.12 (colored)

httpd doesn't support SSL/TLS yet, remove the remaining bits.
The secrect plan is to add it later using the ressl wrapper library.

Revision 1.12 / (download) - annotate - [select for diffs], Sat Aug 2 09:54:13 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.11: +2 -2 lines
Diff to previous 1.11 (colored)

spacing

Revision 1.11 / (download) - annotate - [select for diffs], Fri Aug 1 21:59:56 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.10: +1 -4 lines
Diff to previous 1.10 (colored)

remove the global "log updates/all" option that came from relayd.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Jul 26 09:59:14 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.9: +2 -2 lines
Diff to previous 1.9 (colored)

bzero is over, memset is cool.  pointed out by halex@

Revision 1.9 / (download) - annotate - [select for diffs], Fri Jul 25 21:29:58 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.8: +2 -11 lines
Diff to previous 1.8 (colored)

Canonicalize the request path once without the docroot and prepend the
docroot only only when it's needed.  Suggested by deraadt@.

Revision 1.8 / (download) - annotate - [select for diffs], Fri Jul 25 16:23:19 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.7: +97 -1 lines
Diff to previous 1.7 (colored)

Add support for "virtual hosts" aka. server blocks aka. multiple
servers with the same or "overlapping" IP address but a different name.

ok beck@

Revision 1.7 / (download) - annotate - [select for diffs], Thu Jul 24 08:32:36 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.6: +1 -3 lines
Diff to previous 1.6 (colored)

Plug a memleak by correctly free'ing the HTTP descriptor that contains
all the headers etc. of a connection.

Revision 1.6 / (download) - annotate - [select for diffs], Wed Jul 23 23:10:27 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.5: +6 -2 lines
Diff to previous 1.5 (colored)

When canonicalizing the path, it is better to fail on truncation.

Pointed out by Doug Hogan.

Revision 1.5 / (download) - annotate - [select for diffs], Wed Jul 23 22:56:00 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.4: +2 -5 lines
Diff to previous 1.4 (colored)

I wanted to know if people pay attention.

Doug Hogan found an off-by-one.  More improvements will follow.

Revision 1.4 / (download) - annotate - [select for diffs], Wed Jul 23 22:02:02 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.3: +6 -1 lines
Diff to previous 1.3 (colored)

The media_encoding is not used in parse.y but stack garbage could lead
to a double free; set it to NULL.

This should fix a problem that was found by deraadt@

Revision 1.3 / (download) - annotate - [select for diffs], Wed Jul 23 19:03:56 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.2: +64 -1 lines
Diff to previous 1.2 (colored)

Add canonicalize_path() to canonicalize the requested URL path.

Revision 1.2 / (download) - annotate - [select for diffs], Sun Jul 13 14:17:37 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN
Changes since 1.1: +78 -3 lines
Diff to previous 1.1 (colored)

Add support for media types (aka. MIME types): the types section is
compatible to nginx' mime.types file which can be included directly.
If not present, use a few built-in defaults for html, css, txt, jpeg,
gif, png, and js.

Revision 1.1 / (download) - annotate - [select for diffs], Sat Jul 12 23:34:54 2014 UTC (9 years, 10 months ago) by reyk
Branch: MAIN

Add httpd(8), an attempt to turn the relayd(8) codebase into a simple
web server.  It is not finished yet and I just started it today, but
the goal is to provide an HTTP server that a) provides minimal
features, b) serves static files, c) provides FastCGI support, and d)
follows common coding practices of OpenBSD.

It will neither support plugins, nor custom memory allocators, EBCDIC
support, PCRE or any other things that can be found elsewhere.
httpd(8) is not intended to provide a fully-featured replacement for
nginx(8) or the Apache, but it will provide enough functionality that
is needed in the OpenBSD base system.

ok deraadt@

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.