1 |
nmav |
1.46 |
** Changes from 0.0.8 to 0.0.9 - 27/10/2002 |
2 |
nmav |
1.42 |
* Long offsets are not used by default. |
3 |
|
|
* Use of pipes instead of temporary files, if the post data sent |
4 |
|
|
are less than PIPE_BUF. |
5 |
nmav |
1.44 |
* More consistent logging. The server's hostname or "unknown" |
6 |
nmav |
1.43 |
are prepended to the log message. |
7 |
nmav |
1.44 |
* Corrected redirection/aliases behaviour, to match the documented one. |
8 |
nmav |
1.45 |
* SSLParamsRefresh was renamed to MaintenanceInterval and is more |
9 |
|
|
generic, since it includes some server cleanups. |
10 |
|
|
* Added file access control lists per virtual host. Based on patch for |
11 |
|
|
Boa by Peter Korsgaard <jacmet@sunsite.dk> |
12 |
nmav |
1.46 |
* Added the ability to disable HIC threads by using 0 in the |
13 |
|
|
HICThreads configuration directive. |
14 |
|
|
* Hydra now uses poll by default. Select is available using the --with-select |
15 |
|
|
configure option. |
16 |
nmav |
1.42 |
|
17 |
nmav |
1.41 |
** Changes from 0.0.7 to 0.0.8 - 25/10/2002 |
18 |
nmav |
1.36 |
* Better pthread detection. |
19 |
nmav |
1.40 |
* Better detection of dlopen call. |
20 |
nmav |
1.37 |
* Some changes to compile in gcc 2.95 |
21 |
nmav |
1.40 |
* Added support for FreeBSD's sendfile (untested). |
22 |
nmav |
1.38 |
[Ported from Boa 0.94.14rc1] |
23 |
|
|
* add new state, IOSHUFFLE, which utilizes sendfile (or |
24 |
|
|
emulates it using the request's buffer, otherwise) |
25 |
|
|
* make the default socket size 32K. The client_stream_size stays constant |
26 |
|
|
at 8K, and the new 'buffer' size is 4K |
27 |
|
|
Note also that the new code uses the "default" socket buffer size |
28 |
|
|
it obtains with the first accept()ed socket. |
29 |
|
|
* make default behavior be to leave stderr alone, but tie it |
30 |
|
|
to cgilog otherwise |
31 |
nmav |
1.40 |
* add [optional, Linux-only] check for sendfile system call |
32 |
nmav |
1.38 |
* use --disable-sendfile to disable sendfile support |
33 |
|
|
sendfile support for files > 100K is default, now. |
34 |
|
|
It's significantly faster and easier than the alternative |
35 |
|
|
* umask ~0770 before exec |
36 |
|
|
* tie stdout to the access_log, unless there is no access_log, |
37 |
|
|
in which case tie it to /dev/null |
38 |
|
|
* use sensible defaults for umask (077) and (027 for CGI) |
39 |
|
|
* add and document new parameters (CGILog and CGIumask) |
40 |
|
|
* vast improvements to the cgi-test.cgi program, by Jon Nelson |
41 |
|
|
and Landon Curt Noll. |
42 |
|
|
* next 3 items by Don Mahurin (patches modified somewhat): |
43 |
|
|
* pidfile patch |
44 |
|
|
* default mime_types patch |
45 |
|
|
* NCSA environment environment variables wrapped in |
46 |
|
|
#ifdef USE_NCSA_CGI_ENV |
47 |
|
|
* fix some escaping issues with the directory indexer |
48 |
|
|
(Ulf Harnhammar) |
49 |
|
|
* backport poll support from 0.95 |
50 |
nmav |
1.36 |
|
51 |
nmav |
1.35 |
** Changes from 0.0.6 to 0.0.7 - 10/10/2002 |
52 |
nmav |
1.26 |
* Added support for large files in 32 bit systems. |
53 |
nmav |
1.27 |
* Added support for SSL_* variables in CGIs. |
54 |
nmav |
1.28 |
* Added options in configuration file, to request and verify |
55 |
|
|
a client certificate. |
56 |
nmav |
1.34 |
* The headers of HIC-CGIs are now parsed by the server. |
57 |
nmav |
1.33 |
* Corrected behavour in SIGHUP signal handling, to reread |
58 |
nmav |
1.29 |
the SSL related variables. |
59 |
nmav |
1.33 |
* Children and HIC threads are now killed using a signal, to avoid |
60 |
|
|
unexpected errors, and memory leaks. |
61 |
nmav |
1.26 |
|
62 |
nmav |
1.24 |
** Changes from 0.0.5 to 0.0.6 - 03/10/2002 |
63 |
nmav |
1.21 |
* Compatibility functions are now automatically included in hydra, if |
64 |
|
|
they are not found by the configure script. |
65 |
nmav |
1.22 |
* Replaced the included scandir function, with the one in libc. |
66 |
nmav |
1.23 |
* Fixed code, which compiled fine with gcc 3.2, but didn't compile at |
67 |
nmav |
1.22 |
all, with any other compiler! |
68 |
nmav |
1.23 |
* Improved the MaxConnections directive semantics. |
69 |
nmav |
1.25 |
* Added a very primitive mime.types file in examples/ directory. |
70 |
nmav |
1.21 |
|
71 |
nmav |
1.20 |
** Changes from 0.0.4 to 0.0.5 - 02/10/2002 |
72 |
nmav |
1.18 |
* If a requested CGI is not accesible then send 404 not found, instead |
73 |
|
|
of trying to execute it. |
74 |
nmav |
1.19 |
* Corrected several stuff in HIC CGI handler. This allows Cookies, |
75 |
|
|
POST data and Queries to work properly. |
76 |
nmav |
1.18 |
|
77 |
nmav |
1.17 |
** Changes from 0.0.3 to 0.0.4 - 30/09/2002 |
78 |
nmav |
1.14 |
* Added support for If-Range, If-Match, If-None-Match HTTP/1.1 header |
79 |
|
|
fields. The server also generates ETag headers for static content using |
80 |
nmav |
1.15 |
the last modified field of the file, and the file size. This makes |
81 |
|
|
Hydra cache friendly. |
82 |
nmav |
1.16 |
* Added support for multiple HIC threads. This gives a boost to script generation |
83 |
nmav |
1.22 |
since they are no longer generated sequentially. |
84 |
nmav |
1.14 |
|
85 |
nmav |
1.13 |
** Changes from 0.0.2 to 0.0.3 - 28/09/2002 |
86 |
nmav |
1.11 |
* Added support for dynamic modules that handle CGIs |
87 |
|
|
internally (HIC). That way Hydra can run PHP. |
88 |
|
|
* Fixes in CGI execution. CGIs that are not passed from aliasing |
89 |
|
|
functions now properly set PATH_INFO and PATH_TRANSLATED. |
90 |
|
|
(Needs further cleanup). |
91 |
nmav |
1.12 |
* Cleaned up SSL support. Now hydra can be compiled even if gnutls |
92 |
|
|
is not available. |
93 |
nmav |
1.11 |
|
94 |
nmav |
1.9 |
** Changes from Boa/0.94.13 to Hydra/0.0.2 - 26/09/2002 |
95 |
nmav |
1.2 |
* Added support for SSL 3.0 and TLS 1.0 protocols. |
96 |
|
|
* Added support for multiple CPU's by making the server |
97 |
|
|
run over a pool of threads. |
98 |
|
|
* Changed the file caching code. The mmap() calls are cached until |
99 |
|
|
the mmap list table is full. |
100 |
|
|
* Added support for HTTP/1.1 ranges. |
101 |
nmav |
1.4 |
* Added support for hostname based virtual hosting. |
102 |
nmav |
1.5 |
Also changed the semantics of Alias, ScriptAlias and Redirect, to |
103 |
|
|
take advantage of the host based virtual hosting. |
104 |
nmav |
1.3 |
* Added support for the TCP_CORK tcp option in linux. |
105 |
|
|
* Cleaned up the CGI handling (gunzip, indexer are treated as CGIs) |
106 |
nmav |
1.10 |
* Enhanced grammar to handle 3 and 4 argument options. |
107 |
nmav |
1.7 |
* Added support for multiple directory indexes. |
108 |
|
|
* Dropped support for gunzip. |
109 |
nmav |
1.8 |
* Use automake to create the distribution. |
110 |
nmav |
1.2 |
|
111 |
nmav |
1.1 |
** Changes from 0.94.12 to 0.94.13 |
112 |
|
|
* Change many instances of log_error_mesg + exit to DIE macro |
113 |
|
|
* Change all instance of log_error_mesg (without exit) to WARN macro |
114 |
|
|
* do a much better job of checking return values from malloc and |
115 |
|
|
especially strdup. |
116 |
|
|
* check results of calling umask and getrlimit |
117 |
|
|
* server_s is no longer a global int |
118 |
|
|
* check results of fork via switch instead of if (fork()) |
119 |
|
|
* check for getopt.h and include it if found |
120 |
|
|
* remove unused #defines, and add WARN macro, and replace |
121 |
|
|
many calls to log_error_mesg(..) with WARN macro |
122 |
|
|
* fix bug in get_commonlog_time where time_offset calculation was |
123 |
|
|
the opposite of what it should be ('-' and '+' were swapped) |
124 |
|
|
* fix compatability bug with old and newer versions of flex/yacc |
125 |
|
|
* add check for AC_FUNC_MMAP to configure.in |
126 |
|
|
* fix really lame thinko in normalize_path, which would prepend the |
127 |
|
|
results of earlier calls to results from later calls |
128 |
|
|
* Add MaxConnections, a configuration directive which allows the |
129 |
|
|
user to specify the maximum number of connections that Boa will |
130 |
|
|
accept concurrently. |
131 |
|
|
* add SERVER_ADDR and REQUEST_URI to environment of CGI |
132 |
|
|
* handle SIGBUS during writes of data that has been memory mapped |
133 |
|
|
* minor optimization in select.c that prevents DEAD requests from |
134 |
|
|
being added to the block set |
135 |
|
|
* fix bug in CGI environment script_name - closes sf.net bug #576725 |
136 |
|
|
* make 'status' variable local to requests.c, not local to every file |
137 |
|
|
by forgetting to declare 'extern' in globals.h :-| |
138 |
|
|
* make getsockname non-fatal, and do it every time because we may |
139 |
|
|
need it for the CGI |
140 |
|
|
* some minor refactoring optimizations in hash.c |
141 |
|
|
|
142 |
|
|
** Changes from 0.94.11 to 0.94.12 |
143 |
|
|
* Renamed Changelog ChangeLog, and moved up to top-level directory |
144 |
|
|
* Next 3 items due in part or whole thanks to |
145 |
|
|
Liam Widdowson |
146 |
|
|
* when printf'ing a pid type, force to int, because it could be |
147 |
|
|
something else on other platforms. Should probably change it to |
148 |
|
|
a long, and use that. |
149 |
|
|
* backported chroot commandline support from 0.95 |
150 |
|
|
* backported support for strdup, strstr, alphasort, and scandir |
151 |
|
|
from 0.95 |
152 |
|
|
* Fixed src/Makefile.in -- it didn't remove index_dir.o |
153 |
|
|
* backport create_temporary_file from 0.95 |
154 |
|
|
(instead of using tmpnam) |
155 |
|
|
* Allow non-standard date format 31 September 2000 23:59:59 GMT |
156 |
|
|
Patch by Landon Curt Noll |
157 |
|
|
* Skip whitespace before HTTP/major.minor |
158 |
|
|
Adapted patch from Landon Curt Noll |
159 |
|
|
* open /dev/null first thing (affects chrooting) |
160 |
|
|
* properly handle sigalrm -- use sigalrm_flag and sigalrm_run |
161 |
|
|
instead of handling the signal in the signal handler |
162 |
|
|
* update manpage slightly |
163 |
|
|
* send 400 BAD Request when resource does not start with '/' |
164 |
|
|
* add grp.h to boa.h's includes -- remove from boa.c and config.c |
165 |
|
|
* removed duplicate header includes from boa.c, config.c, get.c, |
166 |
|
|
ip.c, request.c, response.c |
167 |
|
|
* factor out creating the server socket and dropping privs |
168 |
|
|
into create_server_socket and drop_privs |
169 |
|
|
* type all functions in boa.c (except main) as static |
170 |
|
|
* set umask after opening /dev/null |
171 |
|
|
* tie stdin/stdout to /dev/null before commandline parse |
172 |
|
|
* removed old, unused chroot code |
173 |
|
|
* move builds_needs_escape earlier in the startup |
174 |
|
|
* move fork later in the startup |
175 |
|
|
* type all c_set_* as static in config.c |
176 |
|
|
* don't bother trying to change uid/gid (or error if the |
177 |
|
|
requested uid/gid doesn't exist) if not UID 0 |
178 |
|
|
* return more appropriate error code when foo.html gives |
179 |
|
|
access denied, but foo.html.gz gives some other error |
180 |
|
|
(essentially report error associated with foo.html, not foo.html.gz) |
181 |
|
|
* send NOT Implemented when an unknown method is attempted |
182 |
|
|
* always attempt a 32k read right before close |
183 |
|
|
(stopgap until blackhole can be merged) |
184 |
|
|
* allow more than 1 space in logline between method, resource, |
185 |
|
|
and http version |
186 |
|
|
* don't use inline functions |
187 |
|
|
* update configure.in so that autoconf 2.50 doesn't complain (as much) |
188 |
|
|
* properly use VPATH and srcdir according to autoconf docs |
189 |
|
|
* change curly-braces to parentheses in Makefilein |
190 |
|
|
* use $^ instead of manually listing the dependencies in Makefile.in |
191 |
|
|
* remove tests section in Makefile.in |
192 |
|
|
* write tags not TAGS in Makefile.in |
193 |
|
|
* Add gethostbyname and inet_aton to function checks |
194 |
|
|
* Add code from 0.95 which checks for socket in -lsocket, |
195 |
|
|
inet_aton in -lresolv, and gethost{by}name in -lnsl |
196 |
|
|
* Also remove broken bc-based "how big is an unsigned int" checks: |
197 |
|
|
assume minimum of 32 bits and check in escape.c at runtime. |
198 |
|
|
* Added new file: README.chroot.solaris, based on a |
199 |
|
|
modified version by Liam Widdowson |
200 |
|
|
* Add check_struct_for.m4, which allows us to check a structure |
201 |
|
|
for a member (found at http://www.gnu.org/software/ac-archive/ |
202 |
|
|
authored by Wes Hardaker |
203 |
|
|
* Call "aclocal -I ." to rebuild aclocal.m4 |
204 |
|
|
* Using new check-struct-for-member autoconf macro, check |
205 |
|
|
for tm_gmtoff and tm_zone in struct tm -- useful in |
206 |
|
|
portability tests for localtime. |
207 |
|
|
* Also check sockaddr_in for structure sin_len so we can set |
208 |
|
|
it properly. |
209 |
|
|
* index_dir.c (which ends up in boa_indexer) can now be compiled |
210 |
|
|
with USE_LOCALTIME, and if so, it will report the local time |
211 |
|
|
using the timezone name. Otherwise it uses UTC time and UTC |
212 |
|
|
timezone designation. |
213 |
|
|
* fix buglet in mmap_cache.c which shows up when under |
214 |
|
|
heavy load by many different files. |
215 |
|
|
Found and squashed by Michal Kara |
216 |
|
|
* normalize paths on Aliases, log files, server root, dirmaker |
217 |
|
|
This makes sure that paths are 'absolute' |
218 |
|
|
* don't generate DOCUMENT_ROOT or SERVER_ROOT, |
219 |
|
|
CGIs have no business knowing that information |
220 |
|
|
* if CGI, chdir to the cgi's root path |
221 |
|
|
Bug found by Matt Callaway |
222 |
|
|
* remove ChrootPath and PidFile directives from the parser |
223 |
|
|
(they aren't used anyway) |
224 |
|
|
* keep track of maximum file descriptor in use to optimize call |
225 |
|
|
to select() |
226 |
|
|
* apply IPv6 patch from Jari Korva |
227 |
|
|
* optimize keep-alive copy data routine |
228 |
|
|
* try to use memcpy instead of strcpy/strcat in more places (alias.c) |
229 |
|
|
* update .depend file |
230 |
|
|
* use fcntl + GET_FL to get a file descriptor's flags, then |
231 |
|
|
add or remove only the bits we want to set. This prevents |
232 |
|
|
accidentally setting or unsettings bits we don't have anything |
233 |
|
|
to do with inadvertantly. (removed, at least temporarily. |
234 |
|
|
Show me a system where it is needed -- LRD) |
235 |
|
|
* make sure to call FD_ZERO when we handle a restart |
236 |
|
|
* in read.c, don't call boa_perror on read failure -- socket is |
237 |
|
|
dead or messed up anyway, no reason to try to write to it. |
238 |
|
|
* explicit .SUFFIXES in Makefile.in |
239 |
|
|
* boa.objdump target added |
240 |
|
|
* use @MAKE_SET@ (for when $(MAKE) != "make") |
241 |
|
|
* add -Wundef -Wwrite-strings -Wredundant-decls -Winline to GCC_FLAGS |
242 |
|
|
* change Paul Phillips' and Larry Doolittle's emails in source |
243 |
|
|
* add --disable-debug, --enable-profile, --with-dmalloc, and --with-efence |
244 |
|
|
* test for failed-but-return-was-successful setuid: |
245 |
|
|
http://www.securityfocus.com/bid/1322 |
246 |
|
|
* use _exit not exit in CGI child |
247 |
|
|
* always place new keepalive request on blocked list, we can't be |
248 |
|
|
sure of the state of the active list, and since enqueue places |
249 |
|
|
things at the *front* of the list, it doesn't do us much good |
250 |
|
|
to place the new request on the active list anyway. |
251 |
|
|
* update some Copyright statements for 2002 |
252 |
|
|
* When comparing the uri to an alias, only compare if |
253 |
|
|
the uri length is greater than or equal to the length of the alias |
254 |
|
|
* in init_script_alias, make sure to check for document_root before |
255 |
|
|
trying to use it |
256 |
|
|
* script_name is now just a copy of the request, rather |
257 |
|
|
than some complicated variation on the pathname |
258 |
|
|
* change the way the CGI environment is handled. |
259 |
|
|
Now, it is allocated at request allocation time, and exists |
260 |
|
|
throughout the life of the structure. |
261 |
|
|
* check memory allocations, etc.. when creating the static |
262 |
|
|
CGI environment and when making new CGI environment variables |
263 |
|
|
* wait until process_option_end to call unescape_uri, clean_pathname, |
264 |
|
|
and translate_uri |
265 |
|
|
* remove debian package information |
266 |
|
|
* move RedHat packaging information to contrib |
267 |
|
|
* remove tests -- they weren't usable anyway |
268 |
|
|
* add some new hash routines, and use djb2 (a variant on a |
269 |
|
|
hash algorithm popularized by Dan J. Bernstein) |
270 |
|
|
* a side-effect of the new hash routines is a bugfix, |
271 |
|
|
involving negative return values from hash routines. |
272 |
|
|
This has been fixed. |
273 |
|
|
* add a routine, show_hash_stats, which is called with other |
274 |
|
|
statistical output via sigalarm |
275 |
|
|
* remove some duplicate prototypes from config.c |
276 |
|
|
* make simple_itoa take an unsigned int |
277 |
|
|
* try to make NOBLOCK handling in compat.h compatible with Solaris |
278 |
|
|
* make sure to update current_time before calling signal handlers |
279 |
|
|
* alter primary loop to make sure that select gets called even |
280 |
|
|
when there are requests that are not blocking, and call fdset_update |
281 |
|
|
and process_requests (when appropriate) after signal handlers but |
282 |
|
|
before select to make sure that blocked requests are still handled |
283 |
|
|
by select after a sighup. (Thanks to Karl Olsen) |
284 |
|
|
* pull select loop into select.c |
285 |
|
|
* poll server socket once per active connection |
286 |
|
|
* add send_r_service_unavailable and use it when appropriate |
287 |
|
|
* state uptime in seconds at normal program termination |
288 |
|
|
* include sys/fcntl.h if it is found by configure |
289 |
|
|
* fix POST bug where a content-length < 0 would cause Boa to |
290 |
|
|
consume its full share of CPU until killed |
291 |
|
|
Bug report by Landon Curt Noll |
292 |
|
|
* add CGIPath configuration variable |
293 |
|
|
based upon a patch by Landon Curt Noll |
294 |
|
|
* add function boa_atoi, which wraps atoi, but does not |
295 |
|
|
accept negative values. Additionally, it checks to make sure |
296 |
|
|
the converted value and the original value are the same, avoiding |
297 |
|
|
issues like "124.3" -> "123" and "123abc" -=> "123". |
298 |
|
|
Either a value is an int or it isn't - no middle ground. |
299 |
|
|
* use boa_atoi to convert content-length from client. |
300 |
|
|
* add new #define - SINGLE_POST_LIMIT_DEFAULT, which defines |
301 |
|
|
(in bytes) the *default* single_post_limit. |
302 |
|
|
* single_post_limit is now in bytes. |
303 |
|
|
* when adding aliases, only "normalize" paths that start |
304 |
|
|
with "./" - this is a departure from previous behavior |
305 |
|
|
* add "?" to the list of characters that it is safe to leave unescaped |
306 |
|
|
* clean up Makefile.in of no-longer-pertinent comments |
307 |
|
|
* add send_r_bad_gateway and use it |
308 |
|
|
* tie stderr to either cgi_log_fd or devnullfd - either way |
309 |
|
|
make sure stderr is a valid filehandle before cgi execution |
310 |
|
|
* cgi_env is no longer allocated, it's part of the struct now |
311 |
|
|
* fix bug in CgiPath logic |
312 |
|
|
* when unable to allocate memory for an environment variable, log it |
313 |
|
|
* add clear_common_env, which de-allocates the cgi_common_env stuff |
314 |
|
|
[NEVER USE THIS outside of a terminal signal handler!] |
315 |
|
|
* don't be so wasteful of memory in normalize_path |
316 |
|
|
* adapted fix for alias expansion from Brieuc Jeunhomme |
317 |
|
|
|
318 |
|
|
** Changes from 0.94.10.1 to 0.94.11 |
319 |
|
|
* use LIBS in Makefile.in (which propagates from autoconf) |
320 |
|
|
* properly free memory allocated by scandir in index_dir.c |
321 |
|
|
* rearrange some header files and includes |
322 |
|
|
* on reads and writes, don't check for -1, check for < 0 |
323 |
|
|
* include fix by William Meadows |
324 |
|
|
for escape.c which fixes segfaults due to improper allocation |
325 |
|
|
* above fix by William Meadows no longer needed; |
326 |
|
|
escape.c and escape.h rewritten by Larry Doolittle -- requires |
327 |
|
|
at least 32 bit words, but is correct (jdn's 1st attempt was faulty) |
328 |
|
|
|
329 |
|
|
** Changes from 0.94.10 to 0.94.10.1 |
330 |
|
|
* Actually update the SERVER_VERSION in src/defines.h |
331 |
|
|
|
332 |
|
|
** Changes from 0.94.9 to 0.94.10 |
333 |
|
|
* Fixes escaping rules |
334 |
|
|
* Fixes segfault when directory_index is undefined and |
335 |
|
|
directory needs to be generated |
336 |
|
|
* adds dummy signal handlers for SIGUSR1 and SIGUSR2 (Closes SF #425921) |
337 |
|
|
* Update documentation regarding mime.types (Closes Debian #69991) |
338 |
|
|
* Make sure documentation builds (Closes Debian #110818) |
339 |
|
|
|
340 |
|
|
** Changes from 0.94.8.3 to 0.94.9 |
341 |
|
|
* src/Makefile.in updated to take CFLAGS, LIBS, and LDFLAGS |
342 |
|
|
from autoconf |
343 |
|
|
* Update escaping rules with latest RFC |
344 |
|
|
* unescape_uri skips fragments and also stop parsing at '?' |
345 |
|
|
* Don't accept fd over FD_SETSIZE in request.c:get_request |
346 |
|
|
* use backported documentation from 0.95 |
347 |
|
|
* make sure POST fd gets closed even on client cancel |
348 |
|
|
* use backported index_dir.c from 0.95 |
349 |
|
|
* support subdirectories in ScriptAlias directories |
350 |
|
|
* add SinglePostLimit (int, in Kilobytes) to config system |
351 |
|
|
* check for ENOSPC on body write |
352 |
|
|
* use environment variable TMP (or "/tmp" if not available), |
353 |
|
|
and chdir there when boa exits. |
354 |
|
|
* add 1-time-only hack to make a 32kB read at the end of a request |
355 |
|
|
on POST or PUT |
356 |
|
|
* close unused file descriptors (/dev/null in boa.c, and the |
357 |
|
|
unused part of the pipes call in cgi.c) |
358 |
|
|
* made Makefile.in VPATH happy |
359 |
|
|
|
360 |
|
|
** Changes from 0.94.8.2 to 0.94.8.3 |
361 |
|
|
* Move unescape_uri *before* clean_pathname to prevent |
362 |
|
|
encoding of / and .. in pathname |
363 |
|
|
* wrap execution of GUNZIP in cgi.c with #ifdef GUNZIP |
364 |
|
|
* stop parsing when fragment found in URL ('#') |
365 |
|
|
|
366 |
|
|
** Changes from 0.94.8.1 to 0.94.8.2 |
367 |
|
|
* close pipes[1] in child and generate HTTP_REFERER environment |
368 |
|
|
variable in cgi.c |
369 |
|
|
* Minor changes to the Debian package |
370 |
|
|
|
371 |
|
|
** Changes from 0.94.8 to 0.94.8.1 |
372 |
|
|
* Change umask call from (umask(0600)) to (umask(~0600)) |
373 |
|
|
|
374 |
|
|
** Changes from 0.94.7 to 0.94.8 |
375 |
|
|
* Fix major thinko in temp file permissions |
376 |
|
|
* unlink temporary file immediately following creation |
377 |
|
|
* implement maximum # of active connections at 10 less than RLIMIT_NOFILE |
378 |
|
|
to avoid or eliminate crashes resulting from running out of |
379 |
|
|
file descriptors |
380 |
|
|
* Fix thinko in POST |
381 |
|
|
|
382 |
|
|
** Changes from 0.94.6 to 0.94.7 |
383 |
|
|
* STDIN and STDOUT are now tied to /dev/null |
384 |
|
|
* sets PATH_MAX to 2048 if not defined (for Hurd) |
385 |
|
|
* core dumps (should never happen) would be located in /tmp |
386 |
|
|
* alter behavior when select gets a EBADF |
387 |
|
|
* add translation for the \" char -> " |
388 |
|
|
* remove use of sys_errlist. Use perror. |
389 |
|
|
* better makedist.sh (still a stupid program though) |
390 |
|
|
|
391 |
|
|
** Changes from 0.94.5 to 0.94.6 |
392 |
|
|
* Removed doc++ commenting |
393 |
|
|
* Removed erroneous debugging statments |
394 |
|
|
* Move some stuff out of config.c (read_config_file) to boa.c |
395 |
|
|
* Altered some of fixup_server_root() |
396 |
|
|
* Bug fix in get.c re: automatic gunzip |
397 |
|
|
* Added some stubs for chroot code (*not* ready yet) |
398 |
|
|
|
399 |
|
|
** Changes from 0.94.4 to 0.94.5 |
400 |
|
|
* Alteration of most of the comments and such for doc++ use |
401 |
|
|
* Fixed buffer overflow in alias.c |
402 |
|
|
* Fixed buffer underflow in util.c |
403 |
|
|
|
404 |
|
|
** Changes from 0.94.3 to 0.94.4 |
405 |
|
|
* Better escaping of data to user, both for HTTP headers and HTML body |
406 |
|
|
* Proper escaping of output in CGI example perl scripts |
407 |
|
|
|
408 |
|
|
** Changes from 0.94.0 to 0.94.2 |
409 |
|
|
* Fixed obnoxious pipeline bug |
410 |
|
|
* Fixed (sorta) a compilation/core bug for *BSD systems |
411 |
|
|
Original code by Thomas Neumann |
412 |
|
|
* Moved to GPLv2 |
413 |
|
|
* Changed manpage to section 8 |
414 |
|
|
* boa.sgml now references a .png file instead of evil .gif |
415 |
|
|
|
416 |
|
|
** Changes from 0.93.19.2 to 0.94.0 |
417 |
|
|
* Added UseGMT to the configuration parser |
418 |
|
|
* util.c commonlog now logs in Apache-style commonlog time format |
419 |
|
|
* Remove SO_SNDBUF on-start message |
420 |
|
|
|
421 |
|
|
** Changes from 0.93.19 to 0.93.19.2 |
422 |
|
|
* Changed to combined log (from NCSA access_log format) ala Drew Streib |
423 |
|
|
* Altered POST cgi code to handle bug in Netscape |
424 |
|
|
* SO_SNDBUF changes by Larry |
425 |
|
|
|
426 |
|
|
** Changes from 0.93.17.2 to 0.93.19 (all 0.93.18.x changes inclusive) |
427 |
|
|
* Update of some copyright statements for 99 |
428 |
|
|
* Replacement of sprintf with strlen/memcpy or strcpy/strcat |
429 |
|
|
wherever possible |
430 |
|
|
* Significant rearrangement in alias.c, minor functional differences |
431 |
|
|
(some CGI environment variables handled differently) |
432 |
|
|
* Removal of die function. Replace with log_err_mesg and exit. |
433 |
|
|
* initial IPv6 stubs and support |
434 |
|
|
* Move #include "config.h" to top of boa.h where it will do some good |
435 |
|
|
* Stubs and functions for strstr and strdup |
436 |
|
|
* Seperation of buffer code into it's own file |
437 |
|
|
* Significant changes to cgi.c et al (cgi_header.c, etc...) |
438 |
|
|
* Speed patches by removal of "extra" calls to time(): Use global variable! |
439 |
|
|
* pipelining changes... it works now. |
440 |
|
|
* require content-length from clients (ala rfc1945) |
441 |
|
|
* alter body_read and body_write to work more efficiently with known content-length |
442 |
|
|
* move read(2) part to *after* parsing... |
443 |
|
|
* added support for additional header message in send_redirect_temp |
444 |
|
|
* change use of NO_ZERO_FILL_LENGTH to offsetof() use |
445 |
|
|
* Remove SO_REUSEADDR setting on each client socket, Paul Saab |
446 |
|
|
* Avoid SO_SNDBUF setting if possible |
447 |
|
|
* Large quantities of otherwise not-insignificant changes |
448 |
|
|
|
449 |
|
|
** Changes from 0.93.17.2 to 0.93.17.3 |
450 |
|
|
* Put on-the-fly directories back in, stripped down from the 0.92 version |
451 |
|
|
* Fixed DocumentRoot, ServerAdmin and ServerName null-value handling in |
452 |
|
|
CGI environment generation |
453 |
|
|
* Fixed argument order in Script* directives (bug introduced in 0.93.17.2) |
454 |
|
|
* Got rid of MAX_CGI_VARS because it was not being used consistently, or |
455 |
|
|
for that matter, at all, really. |
456 |
|
|
* Added some more FASCIST_LOGGING to cgi.c |
457 |
|
|
* Minor mmap patch by LRD for request.c |
458 |
|
|
|
459 |
|
|
** Changes from 0.93.17.1 to 0.93.17.2 |
460 |
|
|
* Added "Listen" directive for server bind address, as most recently |
461 |
|
|
suggested by David N. Welton |
462 |
|
|
* Put virtualhost feature in, was experimental in 0.92q |
463 |
|
|
|
464 |
|
|
** Changes from 0.93.16.2 to 0.93.17.1 |
465 |
|
|
* New config file parser (supposed to be more maintainable) (LRD) |
466 |
|
|
* Support for "|command" and ":host:port" syntax for logfiles (untested) (LRD) |
467 |
|
|
|
468 |
|
|
** Changes for the 0.93 version ** |
469 |
|
|
* Huge quantities of changes |
470 |
|
|
* keepalive Bugfix in 0.93.16.2 by Jon Nelson |
471 |
|
|
report by Craig Silverstein of Google fame. |
472 |
|
|
* patch for config.h by Craig Silverstein |
473 |
|
|
* fixed "Parent Directory" problem in boa_indexer for title "/" |
474 |
|
|
(Debian bug #36165) |
475 |
|
|
* More Craig Silverstein |
476 |
|
|
modifications, namely: |
477 |
|
|
ErrorLog (if omitted, print to stderr) |
478 |
|
|
DocumentRoot (if omitted, can only server user-dir files) |
479 |
|
|
DirectoryIndex (if omitted, always use DirectoryMaker) |
480 |
|
|
MimeTypes (if omitted, don't load -- users can use AddType instead) |
481 |
|
|
|
482 |
|
|
|
483 |
|
|
** Changes from v0.92o to v0.92p ** |
484 |
|
|
|
485 |
|
|
* Documented misbehavior of CGI, SIGHUP, short aliases, stale dircache. |
486 |
|
|
* Documented how to patch signals.c for use on SunOS. |
487 |
|
|
* Closed file descriptor leak when redirecting a bare directory URL to |
488 |
|
|
one with an appended "/". |
489 |
|
|
* Closed potential file descriptor leak if errors encountered generating |
490 |
|
|
on-the-fly index. |
491 |
|
|
* Cleaned up include file handling to be simultaneously compatible with |
492 |
|
|
Linux, SunOS, HP-UX, and AIX. |
493 |
|
|
* Supress message body for codes 302, 400, 403, 404, 500, and 501 if |
494 |
|
|
incoming request is "HEAD". |
495 |
|
|
|
496 |
|
|
** Changes from v0.91 to v0.92o ** |
497 |
|
|
(0.92o released 27 December, 1996) |
498 |
|
|
|
499 |
|
|
* Maintenance handover from Paul Phillips to Larry Doolittle |
500 |
|
|
* Changed (char)NULL to '\0' |
501 |
|
|
* Cleaned up signal handler prototypes in signals.c |
502 |
|
|
* Modified handling of CGI environment variable PATH_TRANSLATED, |
503 |
|
|
should now work the same as NCSA. |
504 |
|
|
* More conservative buffer size in add_cgi_env() |
505 |
|
|
* Build argv list for a CGI script according to spec |
506 |
|
|
* Speedup process_header_line, eliminate potential memory leak |
507 |
|
|
* Occasional spelling fixes and lint removal |
508 |
|
|
* Added REMOTE_PORT env var for CGI scripts, to allow easy ident lookups |
509 |
|
|
* Changed rfc822 time format |
510 |
|
|
* Log timeouts and broken connections |
511 |
|
|
* Fix mime suffix handling for filenames with multiple "."s |
512 |
|
|
* Initialize conn->time_last, fixes bug with rapid-fire connections |
513 |
|
|
* Performance tweak to req_write() |
514 |
|
|
* Changed http_version from float to char[8] |
515 |
|
|
* Rewrote on-the-fly directory generation; it works now |
516 |
|
|
* Added user configurable dircache directory in boa.conf |
517 |
|
|
* Fixed "simple" response bugs, including incorrect CGI handling |
518 |
|
|
* Keepalive (HTTP/1.1 draft) support, mostly by Jon Nelson |
519 |
|
|
* Close data_fd in 304 Not Modified flow of control |
520 |
|
|
* Switch socket flags to non-blocking before cgi handoff |
521 |
|
|
* Try to handle errno properly in the face of multiple errors |
522 |
|
|
* Close fd's of all other transactions before cgi handoff |
523 |
|
|
* Move real work for sighup and sigchld out of signal handler |
524 |
|
|
* Fix free(req->cgi_env) in request.c |
525 |
|
|
* Response message cleanup - better match to HTML-2.0 DTD |
526 |
|
|
* Experimental Virtual Host code from Russ Nelson |
527 |
|
|
* Expand buffer for escaped URI in init_get() |
528 |
|
|
* SIGTERM triggers lame duck mode until all pending transactions complete |
529 |
|
|
* Close and unlink temp file for POST in parent process |
530 |
|
|
|
531 |
|
|
** Changes from v0.90 to v0.91 ** |
532 |
|
|
|
533 |
|
|
* Cleaned up main while loop |
534 |
|
|
* Optimized request line parsing |
535 |
|
|
* Added state machine for header reads -- necessary to deal wtih |
536 |
|
|
possibility of obtaining header data in multiple reads. This |
537 |
|
|
also allows interactive use of server. |
538 |
|
|
* Added 500/501 return codes for various conditions |
539 |
|
|
|
540 |
|
|
** v0.90 ** |
541 |
|
|
|
542 |
|
|
* Initial release |
543 |
|
|
|