This patch conditionally builds against openssl 0.9.6b _if_ openssl is
unpacked and properly built (using pretty much the defaults) in the
srclib/openssl/ directory. Someday soon this needs to be more exhaustive,
but this should solve the 80% problem :)
enables the use of the ssl_var_lookup functionality in the various source
files in modules/ssl. The ap_hook_* functions are still not yet ported to
Apache 2.0 style
This patch eliminates the direct use of OS library calls (fopen and
other depreciated Apache 1.3 library utilities) from ssl_engine_pphrase.c
and ssl_util_ssl.c.
- eliminated the use of ssl_log - it used to cause seg faults during cleanup
since the conn_rec will no longer be valid.
- eliminated the "for (;;)" processing loop in ssl_io_filter_Output() -
we'll have to do that in churn_output() if required, so that any remaining
OpenSSL data (if available) is transferred before we call the
CloseConnection.
- Any remaining data in SSL should be cleaned up ideally in the
APR_BUCKET_IS_EOS() processing stage itself, as we close the SSL connection
here.
Submitted by: Madhusudan Mathihalli <madhusudan_mathihalli@hp.com>
Reviewed by: William Rowe
Bill Stoddard [Tue, 31 Jul 2001 00:34:27 +0000 (00:34 +0000)]
The read() in apr_recv() would always be called first and return EAGAIN.
This one change to eliminate the read unless there are really bytes to read
is good for a 7 to 9% performance boost on AIX.
Register for %X, %c (we gotta make a decision, please vote if you care...
use %c's meaning from the historical SSL modules, or Bill Stoddard's
connection-terminated meaning? One will have to give.)
httpd.exp and lots of other export files are generated based on the
AP[RU]_DECLARE macros. This commit gets mod_cgid working again as a DSO on
AIX.
However, this brings up the need to look for any functions that are
available as part of the API, and AP[RU]_DECLAREing them, so things don't
blow up in DSOs.
Bill Stoddard [Mon, 30 Jul 2001 15:11:40 +0000 (15:11 +0000)]
Win32: Get exec cgi tag working. finfo.protection == 0 on Windows from the
apr_stat() call in directory walk (because discovering the permissions on
Windows is ridiculously expensive). All we really need to know is whether the
file exists.
Ryan Bloom [Mon, 30 Jul 2001 05:02:53 +0000 (05:02 +0000)]
Add the worker MPM. The name is probably horrible, but I couldn't come
up with anything better. This is a multiple-worker/single listener MPM.
This MPM is definately not complete, but it is a first step in the
right direction.
Nope, changed my mind. With this hack, the build only works right the first
time... a make clean will rm test_char.h. If Solaris 7 is broken, it's broken.
There's got to be a better way. But not for 2.0.22.
This is an awful hack to work around a bug in Solaris 7's native make,
which blows up when you have a dependency on a not-yet-existent file.
The way around this is to have a zero-byte version of the file around before
running make, which will be older than gen_test_char after that gets
built, so the blank test_char.h will get overwritten by a valid one.
If somebody has a better way around this lack of lazy bindings on Solaris 7,
please feel free to cvs rm this intentionally blank file and fix it a better
way.
Correct a subtle reflow problem (evident in Mozilla Gecko/20010505) that
<hr>'s within <pre> tags (entirely illegal in the first place :) are not
adjusted on window resize. By moving the second <hr /> into the <pre>
block, at least the two rules are consistent.
Final pedantic HTML 3.2/4.01 Transitional + XHTML 1.0 Transitional
compliance changes. Note I've left alone the <P> tags, since they
are abused, misused, potentially unsalvageable and certainly more
effort than I care to expend in my quest for brainless end of week
keyboard exercise.
More pendantic changes for HTML 3.2/4.01 Transitional compliance, and
XHTML 1.0 legibility. One XHTML issue remains, <td nowrap>, which has
an issue that "attribute minimization is not supported in XML". Since
?notables drops that thorny issue, I'm ignoring this for now.
More pedantic changes to create HTML 3.2/4.01 Transitional and
XHTML 1.0 Transitional - compliant output. Note that this model
is forever broken, since <hr> and <img> tags within a <pre> block
are, by definition, invalid. This is sort of mute since we need
to start creating a table-based autoindex, mostly for utf-8 names
that map in R-t-L order comixed with L-t-R formatting.
Bill Stoddard [Fri, 27 Jul 2001 19:58:15 +0000 (19:58 +0000)]
Replace ap_send_fd invocation with bucket brigade calls. Send an eos down
the chain and let the brigade close the file descriptor when the network
i/o is done.
Add some logic that gets us over the hump of a missing awk (copying the
files with no editing whatsoever.) Also sets up the shebang for
printenv.pl, and drops in the test-cgi.bat script.
David Reid [Thu, 26 Jul 2001 18:24:58 +0000 (18:24 +0000)]
waitpid doesn't seem to be doing what it's supposed to, so in an attempt
to allow the beos mpm to kill off it's workers and respawn them we'll
now have them ask for a restart when exiting. This was suggested by
Bruno G Albuquerque <bga@bug-br.org.br>.
Submitted by: Bruno G Albuquerque <bga@bug-br.org.br>
Reviewed by: David Reid <dreid@apache.org>
Jeff Trawick [Thu, 26 Jul 2001 18:11:53 +0000 (18:11 +0000)]
Fix a segfault in threaded.c caused by passing uninitialized
apr_thread_t * to apr_thread_join(). Now we clear the array
of apr_thread_t * initially so we can track which threads we
actually created.
Other changes:
don't clobber storage by passing bogus array entry as 1st
parameter to apr_thread_create() to create the start_threads()
thread
join up with the start_threads() thread at termination so that
it is cleaned up and so that no worker threads are still being
created
That's it. There are no further emits for signedness or size conversion
in MSVC 5.x. Enough for 2.0.22, I'll revisit under -w4 (msvc's -wall)
and attack the other modules in 2.0.23-dev.
Terniaries are broken under MSVC, they never did resolve how to resolve
the type of an obvious conversion like this one. Even casting the const
to an apr_port_t doesn't solve it.
This same patch is needed in mod_asis and others, I'm testing the waters
for this solution. I'm easily convinced to choose AP_MAX_SENDFILE based
on any reasonable argument, provided it's smaller than 2^30 :-)
Reduce CPU consumption in conv_10 function, used to format "%d" by apr_*printf
This includes two changes to APR:
* new functions apr_itoa, apr_ltoa, and apr_off_t_toa
that provide itoa-type functionality based on pools
* Inline code in inet_ntop4 to replace sprintf for converting
binary IP addresses into dotted-decimal format
and two changes to Apache:
* use the apr_itoa functions in setting the content length,
in place of apr_psprintf
* use the apr_itoa functions to replace frequent uses of
'sprintf("%d",...)' in mod_log_config.
Submitted by: Brian Pane
Reviewed by: Dean Gaudet, Greg Ames
Bill Stoddard [Tue, 24 Jul 2001 17:24:05 +0000 (17:24 +0000)]
Fix problem with the previous patch to handle HEAD requests. Now, the
header_filter will stay installed in the filter chain when processing
HEAD requests to intercept and discard content bodys sent by poorly
written handlers. This work also points out the need for an optimization
in the content_length filter to not split the brigade if the next bucket
in the brigade is an EOS.
Bill Stoddard [Tue, 24 Jul 2001 14:36:29 +0000 (14:36 +0000)]
Fix problem reported by Taketo Kabe <kabe@sra-tohoku.co.jp>
where HEAD response headers were being repeated twice for
files greater than 32K bytes (4*AP_MIN_BYTES_TO_WRITE). This
problem in the http_header filter was exposed by the recent rewrite
of the content_length filter.
[Taketo Kabe, Bill Stoddard]
Change the worker_function implementations to accept both parameters,
the apr private data (apr_thread_t*) and the application private data
(void*), for the last update to APR.
Submitted by: Aaron Bannert <aaron@ebuilt.com>
Reviewed by: Will Rowe