First, explanations for the vetoes:
interrupt_accept:
I've already aired my objections to this one, but for the record:
By all accounts, the pause problems on linux, as with similar
problems long since observed on other systems, are due to the number
of pending connections on the port 80 socket exceeding the kernel's
fixed limit. This patch does not cure that problem. Furthermore,
if the problem is cured properly (by raising the limit, however you
do that on Linux --- it wouldn't surprise me if it requires
recompiling the kernel, since that's what's needed on SunOS), then
the patch is not needed.
What's more, this particular patch actually introduces a race
condition with similar symptoms --- if the alarm() triggers after
accept() returns but before the alarm() itself can be disarmed, then
the connection will not be serviced, and the descriptor will leak.
The way this looks on the client side is that the browser hangs
forever waiting for a response (nearly indistinguishable from the
case where it hangs waiting for the connection to complete).
If there is a separate Linux bug, different from the
pending-connections limit, which is cured by this patch, I'll lift
the veto, but that can only be tested by running an unmodified
server with a fixed kernel.
utsname:
gethostname() works. No reason not to use it.
itime:
Does not compile on SunOS, apparently due to a missing header file.
I don't have any fundamental problems with this patch, and would be
happy to vote +1 if it even compiled cleanly, but it doesn't....
The complete votes:
+1 01_lock_fname.0.8.12.patch
+1 02_NeXT_fixes.0.8.12.patch
-1 03_utsname_svr4.0.8.12.patch
+0 04_util_cleanup.0.8.12.patch --- (char*) would be better than
(void*); it matches the prototype.
+1 05_nego_cleanup.0.8.12.patch
+1 06_ignore_index.0.8.12.patch
-1 07_interrupt_accept.0.8.12.patch
+0 08b_LynxOS_new_gmtoff.0.8.12.patch
+0 08c_LynxOS_new_gmtoff.0.8.12.patch --- NB this only works on LynxOS
if the LynxOS linker can cope with get_gmtoff being compiled into
*every* file, including util.c, which has another definition.
Can't say that it doesn't, since I don't run on LynxOS, but it
certainly looks weird. NB this also conflicts with no_bsd_conf.
+1 09_no_bsd_conf.0.8.12.patch
+1 10_dynamic_load.0.8.12.patch
+1 11_imap_point.0.8.12.patch
+1 12_virt_server_name.0.8.12.patch
+0 13_new_icons
+1 14_mod_dir_cosmetics.0.8.12.patch
-1 15_log_config_integer_time.0.8.12.patch
+1 16_virtual_maxopenfiles.0.8.12.patch
interrupt_accept:
I've already aired my objections to this one, but for the record:
By all accounts, the pause problems on linux, as with similar
problems long since observed on other systems, are due to the number
of pending connections on the port 80 socket exceeding the kernel's
fixed limit. This patch does not cure that problem. Furthermore,
if the problem is cured properly (by raising the limit, however you
do that on Linux --- it wouldn't surprise me if it requires
recompiling the kernel, since that's what's needed on SunOS), then
the patch is not needed.
What's more, this particular patch actually introduces a race
condition with similar symptoms --- if the alarm() triggers after
accept() returns but before the alarm() itself can be disarmed, then
the connection will not be serviced, and the descriptor will leak.
The way this looks on the client side is that the browser hangs
forever waiting for a response (nearly indistinguishable from the
case where it hangs waiting for the connection to complete).
If there is a separate Linux bug, different from the
pending-connections limit, which is cured by this patch, I'll lift
the veto, but that can only be tested by running an unmodified
server with a fixed kernel.
utsname:
gethostname() works. No reason not to use it.
itime:
Does not compile on SunOS, apparently due to a missing header file.
I don't have any fundamental problems with this patch, and would be
happy to vote +1 if it even compiled cleanly, but it doesn't....
The complete votes:
+1 01_lock_fname.0.8.12.patch
+1 02_NeXT_fixes.0.8.12.patch
-1 03_utsname_svr4.0.8.12.patch
+0 04_util_cleanup.0.8.12.patch --- (char*) would be better than
(void*); it matches the prototype.
+1 05_nego_cleanup.0.8.12.patch
+1 06_ignore_index.0.8.12.patch
-1 07_interrupt_accept.0.8.12.patch
+0 08b_LynxOS_new_gmtoff.0.8.12.patch
+0 08c_LynxOS_new_gmtoff.0.8.12.patch --- NB this only works on LynxOS
if the LynxOS linker can cope with get_gmtoff being compiled into
*every* file, including util.c, which has another definition.
Can't say that it doesn't, since I don't run on LynxOS, but it
certainly looks weird. NB this also conflicts with no_bsd_conf.
+1 09_no_bsd_conf.0.8.12.patch
+1 10_dynamic_load.0.8.12.patch
+1 11_imap_point.0.8.12.patch
+1 12_virt_server_name.0.8.12.patch
+0 13_new_icons
+1 14_mod_dir_cosmetics.0.8.12.patch
-1 15_log_config_integer_time.0.8.12.patch
+1 16_virtual_maxopenfiles.0.8.12.patch