httpd-test-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Norman Tuttle <ntut...@photon.poly.edu>
Subject Changes to Flood code fix check_socket() SSL issue and make the code base more flexible for future code additions
Date Thu, 16 Oct 2003 15:46:29 GMT
This modification to socket structures within Flood provides an in-place
solution to make check_socket() work properly for ssl (could not have
worked properly in the past for keepalive mode because check_socket() was
ignoring the ssl_socket_t level. By putting all the transactions with
sockets above the apr in a single structure, (a) I have eliminated this
and similar errors stemming from confusion regarding sublayers of socket
transactions, (b) paved the way for future additions to this socket
structure which may be needed at various sublevels, and (c) eliminated
multiple allocations of memory for a single transaction. An example of (b)
which has been already added to this structure is a linkage with the
request which is going out of the socket. This provides such information
as the profile's pool and the request's method, and we use it as well to
provide finer timing and time out capabilities at the socket level. This
eliminated the need to explicitly add the method field to the socket
structure (as it is already done in the request) which had been done to
support the "HEAD" requests in the socket level, and also eliminates the
need for a pool parameter to be passed to either the (ssl_) open_socket or
check_socket functions since it is available through the request which is
linked to the socket structure which is now passed to those "open"
functions.

flood_net.h now will import the structures from flood_net_ssl.h which
contains the unified socket structure flood_socket_t. The files
flood_net.c, flood_net_ssl.c, flood_socket_keepalive.c, and
flood_socket_generic.c now utilize this new socket structure and contain
the changes to implement it correctly. The linkage between the request and
socket is set up in the open_socket() function (and now in the
keepalive_begin_conn() function as well because it may not always call the
open_socket() function but is has to link the request).

Please examine the 6 attached diffs which outline these changes.

-Norman Tuttle, Developer, OpenDemand Systems ntuttle@opendemand.com

Mime
View raw message