Commit Graph

730 Commits

Author SHA1 Message Date
Zeev Suraski
551f1831a7 Fix a major thread safety bug in the output mechanism
@- Fixed a major memory corruption bug in the thread safe version (Zeev)
2001-07-02 18:17:10 +00:00
Ben Mansell
c053f12207 Fix FastCGI shutdown for MacOSX, it didn't want to die. 2001-07-02 12:37:47 +00:00
Ben Mansell
d5cf0abac3 Make the FastCGI module behave nicer when trying to shut it down. If you
kill the parent process, then it will kill all its kiddies for you.
Also, now refuses to run as a CGI (since it doesn't work that way), and
corrected a few debug messages.
2001-06-30 17:03:52 +00:00
Sascha Schumann
e6d153f6c4 Support for handling multiple concurrent requests. 2001-06-23 16:27:56 +00:00
Sascha Schumann
0bbe77309d Accomodate an Apache API change 2001-06-22 23:20:49 +00:00
Zeev Suraski
8332ab409a Spit out errors 2001-06-21 14:18:23 +00:00
Sascha Schumann
e843e8c5f0 Move PHP_TARGET_RDYNAMIC check to global acinclude.m4 and use it
in thttpd's config.m4.
2001-06-15 12:53:20 +00:00
David Hedbor
6b0f88e828 Fix segfault when env vars are missing. 2001-06-08 16:31:22 +00:00
Sebastian Bergmann
49ab8cb8f1 Remove bogus '.'. 2001-06-06 13:24:17 +00:00
Rasmus Lerdorf
81e2cf03ac Fix folding and clean up some extensions 2001-06-06 13:06:12 +00:00
Martin Kraemer
f2002d3e41 Oops, sorry. I should not have committed this ebcdic fix (which was none) 2001-06-01 12:58:41 +00:00
Sascha Schumann
d342acc3a9 Add TUX SAPI module 2001-05-26 23:58:38 +00:00
Sascha Schumann
1ad2a710ab Use EXTRA_LDFLAGS at this point.
I've confirmed that one can build a working Apache DSO module now
(AIX 4.2 with gcc 2.95.2 and Apache 1.3.12).
2001-05-23 21:23:16 +00:00
Martin Kraemer
c96d652843 Fix Basic auth (when under PHP control) for EBCDIC platforms 2001-05-23 15:24:53 +00:00
Shane Caraveo
f0b6b8ab52 The -c commandline option was not working at all, need to set the path
override before calling on the module startup.
2001-05-22 23:05:08 +00:00
Sascha Schumann
40245019cc s/^I/ / and some re-indenting. Also align the APXS checking code
with the standard scheme.
2001-05-19 17:13:09 +00:00
Sascha Schumann
b56e877e53 Reindent, add link map for AIX, improve diagnostic message,
carry over all -D* CPPFLAGS, and nuke REGEX recognition.
2001-05-19 17:02:09 +00:00
Sascha Schumann
bc7a582f84 Use write(2), if we can successfully write to stdout. 2001-05-19 14:30:33 +00:00
Sascha Schumann
e29a1b2230 First try at using Apache's export list when building a DSO. 2001-05-18 20:53:53 +00:00
Thies C. Arntzen
e80abfa40c revert parts of last commit - stupid me! 2001-05-18 14:40:02 +00:00
Thies C. Arntzen
2db3431f00 --enable-memory-usage-info id deprecated. use --enable-memory-limit instead! 2001-05-18 14:32:05 +00:00
James Moore
6026a36879 Merge the more sensible way of doing this back in to HEAD 2001-05-17 23:57:43 +00:00
James Moore
873d59a8ea @ - Fixed getopt so it accepts arguments in the form -<option><value> not
@   just -<option> <value> (jmoore)
2001-05-17 21:32:05 +00:00
Zeev Suraski
89c7b891c9 Add missing info 2001-05-17 13:31:45 +00:00
Sterling Hughes
0492f086e7 # Revert the SLS_FETCH() ;) 2001-05-16 18:28:18 +00:00
Sterling Hughes
2d84ecbba8 Remove redundancy
# And further fix problem ;)
2001-05-16 18:15:49 +00:00
Sterling Hughes
4565812470 fix windows build.
#untested
2001-05-16 18:10:06 +00:00
Zeev Suraski
260b4d0dbf Merge memory usage into memory limit 2001-05-16 15:02:30 +00:00
Daniel Beulshausen
e1a9871337 add missing apls_fetch 2001-05-16 09:01:20 +00:00
Zeev Suraski
d1845fb138 Move the initialization to a safer place (earlier, it could end up
not being reset to 0 under certain circumstances)
2001-05-15 14:55:42 +00:00
Daniel Beulshausen
0f60b4b8a5 fix typo 2001-05-14 10:30:30 +00:00
Zeev Suraski
0113263991 Safer detection of recursive PHP invocations 2001-05-13 09:03:46 +00:00
Sascha Schumann
afdaee9e47 Nuke more quotes 2001-05-12 11:09:05 +00:00
Sascha Schumann
718b588b14 Fix indentation of ./configure --help messages. 2001-05-12 09:13:42 +00:00
Thies C. Arntzen
169febcdf0 @- Added --enable-memory-usage-info. This creates a new Apache 1.x logging
@  directive "{mod_php_memory_usage}n" which will log the peak amount of
@  memory used by the script. (Thies)
2001-05-11 18:17:08 +00:00
Zeev Suraski
4afa93f716 @- Fixed a possible crash in the PHP CGI when no input file is
@  specified (Zeev)
Fixed bug 7822
2001-05-10 14:13:18 +00:00
Zeev Suraski
6cd3b987b8 $argc was off by one in -f (fix bug #9289) 2001-05-08 00:51:11 +00:00
Zeev Suraski
910e9d068c whitespace 2001-05-07 22:02:44 +00:00
Zeev Suraski
d229f82a46 Allow virtual() of PHP files. We may have to improve the detection code a
bit, but it worked well on everything I tried.
2001-05-07 11:07:22 +00:00
David Hedbor
935d6287fd Patch from Jan Legenhausen to add vars to the HTTP_SERVER_VARS array. 2001-05-07 06:43:37 +00:00
Ben Mansell
13e4699ae3 Removed a duplicate php_import_environment_variables() call
from fastcgi sapi
2001-05-04 09:49:14 +00:00
Sascha Schumann
e337f07ecd Replace slow strlcpy with a quick memcpy. 2001-05-03 09:04:15 +00:00
Andi Gutmans
8975186810 - Another strncpy() -> strlcpy() change 2001-05-02 22:53:41 +00:00
Ben Mansell
98af7a8d7d Patch from Stephen Landamore: speed up the environment merging by
using memcpy instead of putenv.
2001-05-02 17:19:58 +00:00
Andi Gutmans
a166b6146b - Remove unused variable 2001-05-01 07:16:57 +00:00
Sterling Hughes
ba49860cc8 fix for bug 6491, http://www.php.net/bugs.php?id=6491, removes a bit of
(what I think is) broken logic.

#  This is as discussed on the mailing list previously.  This change
#  does fix the problem, however, the extra code was in there for a
#  reason (I'm guessing :), i'm ready to revert this patch in a jiffy
#  if someone has a good reason why that (just removed) extra logic
#  should be in there.
2001-05-01 03:48:27 +00:00
Andi Gutmans
6196e0bc4d - Fix for Bug id #10071
PR:
Submitted by:
Reviewed by:
Obtained from:
2001-04-30 22:47:51 +00:00
Andi Gutmans
4c823e8a89 - Change macros from V_ to VCWD_ because of AIX name clash 2001-04-30 12:45:02 +00:00
Daniel Beulshausen
59f3775f7c add/fix pi3web dsp 2001-04-28 18:46:56 +00:00
Sascha Schumann
6602b48071 Fix optimization -- we did not send out custom Response Status Lines. 2001-04-25 06:42:24 +00:00
Sascha Schumann
ab1df8dfb9 Accomodate Apache HTTPD 2.0 API change 2001-04-24 12:57:34 +00:00
David Hedbor
d522a6a25e Disable use of th_farm since it doesn't seem to work. Uses a Pike layer
thread farm now instead.
2001-04-24 01:08:35 +00:00
Sascha Schumann
ff423ef9d9 remove Only.* lines from patch 2001-04-22 14:33:57 +00:00
Sascha Schumann
0fc2ca64bf bytes in the conn structure was renamed to bytes_sent. 2001-04-22 14:22:40 +00:00
Sascha Schumann
38e55b3249 Update patch to thttpd-2.21 2001-04-22 14:00:53 +00:00
Stig Bakken
0b2641efa6 @Added -C command-line option to avoid chdir to the script's directory (Stig) 2001-04-16 23:20:47 +00:00
Sascha Schumann
466c226415 Revert mega patch.
This patch has at least the following deficiences:

- the CGI is built using objects from another SAPI module.
  This usually results in unsatisfied symbol references.
- the CGI makefile is not created properly
- building CGI cannot be disabled
2001-04-09 15:47:19 +00:00
Stig Bakken
a4877d7afd * CGI version is always installed!
* replaced --disable-pear with --with-pear=DIR (or --without-pear),
  is backwards compatible
* use --datadir, --libdir and --sysconfdir configure options to determine
  where PEAR files, shared extensions and php.ini goes
* simplified the extension version directory name
2001-04-08 22:30:17 +00:00
Holger Zimmermann
23f3187b6f Contribute the MSVC project file. Someone could add this to the php4ts workspace. 2001-04-08 11:04:27 +00:00
Holger Zimmermann
8c0f71e7b3 Reorganized the #define's in the header. 2001-04-08 10:49:07 +00:00
Holger Zimmermann
9b7aa43dd4 Updated copyright agreement regarding move of Pi3Web to sourceforge. 2001-04-08 08:25:20 +00:00
Sascha Schumann
d8b3bdf3bc Fix static Apache builds which were broken by the last commit. 2001-04-05 10:56:04 +00:00
Wilfredo Sanchez
cb71c4c2d0 Separate CPPFLAGS from CFLAGS. 2001-04-03 23:30:49 +00:00
Wilfredo Sanchez
0df6e8dd88 Add INSTALL_ROOT variable to specify install location. 2001-04-03 20:59:50 +00:00
foobar
8a26918ed1 Renamed the AC_ prefixed macros defined in acinclude.m4 to PHP_* prefixes.
# Heads up people! I tested this before committing but you never know..
2001-03-27 20:35:04 +00:00
Ben Mansell
afbcd5c4eb Changed header handling; before, we were somehow losing
Content-Type: text/html
2001-03-27 15:16:34 +00:00
Ben Mansell
4549e389bb Fix a bug with POST requests. If the Content-Type header wasn't present,
we were setting SG(request_info).content_type to NULL, instead of
an empty string. This was stopping PHP from processing the data.
2001-03-22 18:54:51 +00:00
Ben Mansell
87bc51fc5c Fix a bug with POST requests. If the Content-Type header wasn't present,
we were setting SG(request_info).content_type to NULL, instead of
an empty string. This was stopping PHP from processing the data.
2001-03-22 18:48:51 +00:00
Ben Mansell
2c8c9d68d7 Altered README.Zeus to give instructions on building FastCGI.
Changed --with-zeus configure option into --with-isapi, since its more
descriptive (and since there are now different ways to configure PHP+Zeus)
2001-03-19 11:23:57 +00:00
Ben Mansell
08df6f9b67 @ New FastCGI server module
New FastCGI server module. Based on the thttpd server module with
large chunks of code ripped from the cgi module. Also modifies
Makefile.in and configure.in in order to make it build properly.
# This initial checkin has been tested with the Zeus web server,
# but should work with any server that has a correct FastCGI
# implementation.
2001-03-19 11:03:29 +00:00
Stanislav Malyshev
5c1f7a2f60 Fix off-by-one on config values set from Apache config
# It didn't really hurt, since the extra character was always \0,
# but the phpinfo() display came out ugly.
2001-03-13 18:39:38 +00:00
Sascha Schumann
5708ddf171 Replace memcpy and sprintf with smart_strs. 2001-03-13 17:14:47 +00:00
foobar
f4917d49c3 Fixed the help for other options too. 2001-03-07 13:24:12 +00:00
Ben Mansell
515c20da47 Added support for Zeus SSL client certificate information.
Added SERVER_SIGNATURE to the environment.

Submitted by: daniel@zeus.com
2001-03-07 10:28:00 +00:00
Zeev Suraski
800950c5a7 Avoid using ret uninitialized 2001-03-06 15:10:53 +00:00
Ben Mansell
a40f208ab8 Thread hashtable was being initialized with a size of 1! Changed to 128 as
a more sensible number.
# Also could change the 'expected resources' parameter from 1, but I
# haven't tested that bit yet
----------------------------------------------------------------------
2001-03-06 15:09:15 +00:00
Zeev Suraski
559c254f8f Avoid writing to error_log in case of aborted connections. 2001-03-06 15:00:08 +00:00
foobar
356fc41a0a Fix help text for -f 2001-03-05 15:08:36 +00:00
foobar
81a2669216 Can't output any error messages if there isn't any function initialized
to do it..
# Bug report: #7650
2001-03-05 01:26:36 +00:00
Zeev Suraski
ce39c56c8b whitespace fix 2001-03-04 01:08:46 +00:00
Sascha Schumann
de6c69f716 Combine all HTTP headers into a single writev 2001-03-02 17:01:52 +00:00
Andi Gutmans
abb18a7918 - Commit NSAPI patches. 2001-03-02 15:25:51 +00:00
Sascha Schumann
2da359bb84 httpd-2.0 cvs seems to be busted. I'm getting very strange backtraces
and the header filter still seems to be broken.  Will try later.
2001-02-28 14:19:15 +00:00
Sascha Schumann
a824c87e6d Now it actually loads, but it segfaults upon a request. 2001-02-28 14:11:34 +00:00
Sascha Schumann
6ed0cbb140 Make the module compile again with the latest httpd-2.0 cvs. 2001-02-28 14:03:58 +00:00
Ben Mansell
5e5f5886ff Added PHP_AUTH_USER, PHP_AUTH_PW and PHP_AUTH_TYPE environment variables
for Zeus/ISAPI, so basic authenication works.

Submitted by: daniel@zeus.com
2001-02-27 13:29:21 +00:00
Andi Gutmans
a0d3c5a88e - Finally rename modules.h to zend_modules.h for consistency (first try
was 2000-03-11).
- Remove the first_arg_force_ref[]; and friends extern from php.h as they
  are included via zend_API.h
2001-02-26 18:14:50 +00:00
Andi Gutmans
eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00
Sascha Schumann
adb3e3992c php_register_command_line_global_vars only needs file scope. 2001-02-24 21:07:07 +00:00
Sascha Schumann
280e10aac7 Neither the CGI nor the Servlet SAPI module call syslog, so remove
references to the syslog include files.
2001-02-24 21:05:02 +00:00
Sascha Schumann
d516726329 Change the default to assumption that people don't use AOLserver 3.0 anymore. 2001-02-24 13:14:27 +00:00
Sascha Schumann
c2fb53bed7 Finish fopen-wrappers rename. 2001-02-23 22:07:16 +00:00
Sascha Schumann
4a32816f9e If we cannot send the header, we don't need to continue with the page. 2001-02-21 20:25:53 +00:00
Sascha Schumann
328ca1b178 There is no need to declare ap_php_(opterr|optopt) with external linkage
as they are not used outside of getopt.c.

PR: #9364
2001-02-21 07:41:01 +00:00
Sascha Schumann
2403578e35 Include <sys/uio.h>. Apparently, the header cleanup in glibc 2.2.2
caused that file to be included by accident.
2001-02-19 10:28:08 +00:00
Sascha Schumann
8c92cdd897 Save 50% of the syscalls when writing the HTTP header. 2001-02-18 19:03:36 +00:00
Ben Mansell
f49d4de599 Fixed non-threadsafe code: 'isapi_special_server_variables' was a static
buffer, and not allocated per-connection. Bad bad bad!
2001-02-16 16:01:34 +00:00
David Hedbor
140279fc7b Fixed PHP authentication and some other minor things. 2001-02-09 05:32:42 +00:00
Sascha Schumann
9db16758b3 Make fprintf's optional 2001-02-08 16:26:18 +00:00
Rasmus Lerdorf
0d0a8f55d6 Kill warning 2001-01-22 01:13:49 +00:00
Zeev Suraski
3793dc18f2 Sigh. Even less sleep than I thought :) Really fix it this time. 2001-01-22 01:10:21 +00:00
Zeev Suraski
9a02c9993d Too much work, not enough sleep... Fix hash lookup 2001-01-22 01:08:28 +00:00
Zeev Suraski
6255a24f1c Don't overwrite PATH_TRANSLATED if it exists 2001-01-22 00:06:52 +00:00
Ben Mansell
12537e9787 @ Support Zeus 3.3.8
Added changes to environment variable manipulations, to support Zeus 3.3.8
and increase compatibility between Zeus/IIS/Apache. Now, URLs like
http://foo.org/file.php/a/b/c/d work correctly.
# While testing, it looks like IIS+ISAPI is mishandling URLs like the above.
# The PATH_TRANSLATED given by ISAPI includes the /a/b/c/d bit of the URL,
# so using this var to find the script file to open on disk will not work.
# We now use SCRIPT_FILENAME if it is present (in Zeus 3.3.8)
# IIS doesn't seem to set this variable, it might be necessary to mangle
# SCRIPT_NAME and APPL_PHYSICAL_PATH together?
2001-01-16 10:44:52 +00:00
Zeev Suraski
a910f8cc80 Fix output dir 2001-01-15 15:16:30 +00:00
Zeev Suraski
9877acdb32 - Implement CompareStringWithFile()
- Remove a stupid NULL assignment that slipped in the last commit
2001-01-15 15:13:50 +00:00
Zeev Suraski
47ea52ca58 - Implement quick file comparing routine
- Fix crash - wait on the threads themselves, not on Event objects.
  It takes time between the time a thread signals the event, and the
  time it actually terminates (shutdown code) - so FreeLibrary() and
  the main() termination could occur before all of the threads
  terminated...
2001-01-15 14:55:30 +00:00
Sascha Schumann
f6eae19147 Try harder to push data through the wire.
I just learned that the AOLserver module will be used for a 100k users
webmail service.  Wheee!
2001-01-15 14:48:14 +00:00
Shane Caraveo
42b1b44ad4 test now produce valid OK or FAIL. 2001-01-15 01:52:47 +00:00
Shane Caraveo
ebe94513cc dont do results if not using test files 2001-01-15 01:17:44 +00:00
Shane Caraveo
1d40310fa4 clean up temp files 2001-01-15 01:13:51 +00:00
Shane Caraveo
c88be3f8b3 check files open 2001-01-15 00:57:16 +00:00
Shane Caraveo
833ba12664 fix file reading, add results 2001-01-15 00:56:23 +00:00
Shane Caraveo
dd01542bad Multithreaded stress test program for isapi module now supports phpt files
still stuff to do before it's realy done, but does run the tests, just need
to get it to compare results right now.
2001-01-15 00:29:49 +00:00
Sascha Schumann
ae92ebb92b Especially on FreeBSD it seems to be common that send(2) does not
do a decent job.  We handle that better now.
2001-01-10 13:51:58 +00:00
Sascha Schumann
de847f60ba Propagate the response code/HTTP status code back to thttpd for logging. 2001-01-09 09:01:33 +00:00
Sascha Schumann
7dd166e8c0 Account the number of sent bytes properly 2001-01-09 08:45:05 +00:00
Sascha Schumann
426d4104ea Make Apache 2.0 filter build again 2001-01-08 23:18:47 +00:00
Shane Caraveo
b2cb9ac8fe ignore blank lines 2001-01-08 01:14:49 +00:00
Shane Caraveo
0a1d3aa108 add notes on this program 2001-01-08 00:10:06 +00:00
Shane Caraveo
a1c3f92ac7 stresstest is based on cgiwrap. it can be used to debug php4isapi.dll without
the use of an actual web server.
2001-01-07 23:52:18 +00:00
Shane Caraveo
f1afd6f487 define flag to turn off exception handling 2001-01-07 23:45:24 +00:00
Daniel Beulshausen
0d258cc523 make threaded apache module build again 2001-01-05 17:00:07 +00:00
Zeev Suraski
43a7643453 Fix last couple of problematic execution paths that could corrupt the INI values 2001-01-03 22:45:11 +00:00
Zeev Suraski
60776dbeeb Fix Apache module and remove excess elements from the SAPI structure 2001-01-03 11:56:00 +00:00
foobar
c5da386dbd Fix compile. 2001-01-03 11:39:09 +00:00
Zeev Suraski
bd0ac7fe14 Many patches. I hope I remember them all:
- Make sapi_module available to external modules (PHPAPI)
- Make the php.ini path reported in phpinfo() always point to
  real full path of the php.ini file
- Optimized the ISAPI module not to read unnecessary server
  variables and read necessary variables at most once.
2001-01-02 22:49:31 +00:00
Zeev Suraski
0048312fa6 Fix a few possible bugs:
- engine=off in one or more vhosts could propogate to other vhosts
- Under some error situations, the default values for INI directives
  could be erroneously replaced for a single request
2000-12-30 00:38:47 +00:00
Holger Zimmermann
7af7199a17 Minor update regarding new phpinfo table format. Moved pi3web_sapi.h to the sapi module.
PR:
Submitted by:
Reviewed by:
Obtained from: Pi3Web
2000-12-28 08:31:42 +00:00
Zeev Suraski
a697d076bc Add Release_TSDbg support. This mode compiles PHP with the release C runtime,
but with optimizations disabled and with debug info.  Some crashes can only
be debugged using this mode.
2000-12-26 22:15:32 +00:00
Zeev Suraski
aa6d2ac5d0 Heads up people!
Updated the get_current_key() API - the relevant authors, please take
a look at the updated code and make sure it's ok...
2000-12-22 12:57:09 +00:00
Sascha Schumann
7f96af83b2 Stop automatically passing vars to AC_SUBST through PHP_SUBST.
There are some variables which are needed for Makefiles and files
created by AC_OUTPUT; we use PHP_SUBST_OLD for those now.

genif.sh was moved to an appropiate place.
2000-12-20 17:21:37 +00:00
Andi Gutmans
86a1cace27 - Make all places use MAXPATHLEN in the same way. It includes the
terminating NULL.
2000-12-16 20:52:43 +00:00
Sam Ruby
a472edb99b AIX's XlC++ does not allow casts as an lvalue. 2000-12-16 00:15:56 +00:00
Ben Mansell
fbf699adb6 Fix Zeus' behaviour with URL, SCRIPT_NAME, SCRIPT_FILENAME, REQUEST_URI
environment variables
PR:
Submitted by:
Reviewed by:
Obtained from:
2000-12-15 16:18:55 +00:00
Daniel Beulshausen
3b20a425c9 added missing SLS_FETCH() 2000-12-14 22:16:21 +00:00
Ben Mansell
a017a6c025 (Zeus) Re-added some server variables that will be used.
Also added DOCUMENT_ROOT, was missing before for non-Win32
2000-12-13 17:11:01 +00:00
Sascha Schumann
276cb7cdb1 Add apache_child_terminate() and INI setting apache.child_terminate
which defaults to 0.

Submitted by: Sam Liddicott <sam.liddicott@ananova.com>
2000-12-13 13:19:56 +00:00
Sascha Schumann
104311042c Add TODO note 2000-12-11 08:05:53 +00:00
Sascha Schumann
107aa9f71a Align ZTS handling of globals with common usage 2000-12-10 23:22:20 +00:00
Daniel Beulshausen
d41137fedf fix win32 apache module
# this is ugly, has someone a better way?
2000-12-10 22:40:07 +00:00
Daniel Beulshausen
1f31360f01 fix windows build 2000-12-10 22:06:07 +00:00
David Hedbor
9147a81a19 Fix for Pike 7.1 (error -> Pike_error). Caudium bug #12486. 2000-12-07 19:01:13 +00:00
Sascha Schumann
0ddb725f91 Axe rest of DAV leftovers and use STD_PHP_INI_ENTRY in the INI section 2000-12-07 13:07:18 +00:00
Sascha Schumann
7e28784de3 Fix indentation of configure output 2000-12-06 17:34:58 +00:00
David Hedbor
694a5620e4 Removed a fatal condition to allow for harmless user error plus some other
small changes.
2000-12-04 23:12:40 +00:00
Sascha Schumann
dedec6614e Automatically carry over macro definitions from Apache.
We don't take everything, because apxs' CFLAGS also includes
optimization, debugging, et cetera flags.

PR: #7211
2000-12-04 16:05:00 +00:00
Sascha Schumann
c95a8f39b9 Merge with php_4_0_4 2000-12-03 08:37:43 +00:00
David Hedbor
1731fb0c67 Minor cosmetic changes. 2000-12-01 23:34:01 +00:00
David Hedbor
bb1d16c122 More config.m4 fixes. 2000-12-01 23:10:49 +00:00