/[hydra]/hydra/ChangeLog
ViewVC logotype

Annotation of /hydra/ChangeLog

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations)
Mon Sep 23 13:24:19 2002 UTC (19 years, 2 months ago) by nmav
Branch: MAIN
Changes since 1.1: +8 -0 lines
*** empty log message ***

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

webmaster@linux.gr
ViewVC Help
Powered by ViewVC 1.1.26