is to maintain a list of overlapped io structures in the child_main control thread
and use HasOverLappedIoCompleted() to manage the connections and pending io.
We must resort to maintaining a list of pending io (i.e. overlapped structures) should
we ever begin using AcceptEx to receive data. Why? We need to be able to detect when
a connection is received but no data is being sent over that connection. There is a
Win32 function (whose name I forget at the moment) to handle this. Why can't Win32
just timeout the connection using setopt??? It would make life so much easier if AcceptEx
just returned TIMEOUT in this condition rather than requiring the application to
explicitly poll the socket to see if data is available.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85131 13f79535-47bb-0310-9956-ffa450edef68
without precompiled headers or source browse files under
Win32. Enabling these is straightforward, if that's what
the user desires. Also correct minor errors, and reset
some project defaults to their current config.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85121 13f79535-47bb-0310-9956-ffa450edef68
for precompiled headers and debugging by eliminating large chunks
of the windows.h declarations, especially the graphical user
interface declarations.
Also eliminates redundant inclusion of winsock and windows headers.
As the GUI sections can be included by adding the windows.h include
prior to any apr headers, these includes now imply something
completely different.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85117 13f79535-47bb-0310-9956-ffa450edef68
os/$(OS_DIR) is now equivalent to the old $(OS_DIR)
Necessary include paths are added only in VPATH mode.
Dependencies are stored in the build directory now.
They contain paths which depend on the current build,
and therefore they are not general.
Fixed two dependencies in main/Makefile.in.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85113 13f79535-47bb-0310-9956-ffa450edef68
* Makefile header is now completely dynamic
* Absolute paths everywhere
(fixes Tru64 support)
* Get rid of LTLIBRARY_SHARED_NAME rule in library.mk
(fixes Irix support, untested)
* VPATH does not contain variables anymore
(fixes UnixWare support)
* Remove inclusion of program.mk in support/Makefile.in
(PROGRAM_NAME is empty => breaks Irix and others)
* Call REENTRANCY_FLAGS earlier, so that flags are passed to header checks
(might fix OpenBSD pthread.h-detection, untested)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85102 13f79535-47bb-0310-9956-ffa450edef68
Obtained from:
Submitted by: William Rowe
Reviewed by:
Created ap_base64.h to extract those declarations for clarity from ap.h
CORE_PRIVATE, httpd.h do not belong in library functions, removed from ap.lib
Use apr headers for declarations in ap.lib stuff, kill AP_LONG from ap_sha1.h
Move credit to lib/apr/lib/ap_snprintf.c from ap.h for authorship
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85097 13f79535-47bb-0310-9956-ffa450edef68
apr_file_io.h: fix comment describing APR_OS_DEFAULT
sockets.c: use socklen_t instead of int to avoid compile
warning on systems with unsigned sock len parms
dexter/.cvsignore: ignore .deps, .libs
errorcodes.c: get rid of some unused vars
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85069 13f79535-47bb-0310-9956-ffa450edef68
the use of CancelIo on the listen socket. Threads can only cancel
their own I/O. To enable use of this nifty feature, I needed to make
sure only one thread ever initiated async I/O. So, if the workers
detect that they need more completion contexts (async AcceptExes),
they set the maintenance_event, which directs the control thread to
do the work on behalf of the workers. Most of the other changes are
to support this end.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85030 13f79535-47bb-0310-9956-ffa450edef68
pass the first child, rather than expecting the walker to do it.
remove the nasty "static" variable inside ap_walk_config(). it now walks the
tree provided with no worries about bumping up/down levels.
minor refactor between ap_walk_config() and ap_walk_config_sub() to clean up
some logic and clarify the code.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85025 13f79535-47bb-0310-9956-ffa450edef68
add directive.
move configfile_t and functions from httpd.h to http_config.h
new signature for ap_build_config() (since config_file removed from cmd_parms)
add "data" to ap_directive_t for future use by modules. add filename.
syntax checking for section-close directives: a section-open must exist,
the section-close must be </FOO>, and the open/close must match.
the file as a whole must be properly balanced (issue errors for each
unmatched section-open).
</FOO> command_rec structures are obsolete. Remove from http_core.c.
do not store </FOO> directives in the config tree.
clean out section-close logic from http_core.c (and old, related comments)
<Limit> and <LimitExcept> must walk their children.
new mechanism in ap_check_cmd_context() for testing enclosure in a
Directory/Location/File: find_parent()
<IfModule> and <IfDefine> must pass cmd->context when walking the children
several places: we had a walk followed by ap_get_module_config(). that
assumed the walk would create a config that we could fetch, which is not
true -- it is possible that the children are all from other modules
(e.g. the <Files> section in httpd.conf-dist has no "core" directives).
using ap_set_config_vectors() ensures we get a structure, and it returns
it to us.
[ note: when we had </Directory> (and friends) in the tree, the config
would get created; removing the directive removed the config; this
was a bitch to track down :-) ]
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85024 13f79535-47bb-0310-9956-ffa450edef68
add missing return statements, wrap some lines, remove unused vars.
move syntax error reporting and exit(1) back to the right place (to be
fixed in a future pass; the exit() is inappropriate for parsing
.htaccess files).
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85023 13f79535-47bb-0310-9956-ffa450edef68
ap_canonical_errror() for Unix now maps EWOULDBLOCK to EAGAIN/APR_EAGAIN
when appropriate so that the changes here (as well as bjh's changes from a
few days ago) to call ap_canonical_error() before comparing with EWOULDBLOCK
will work on Unix as well.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85019 13f79535-47bb-0310-9956-ffa450edef68
Apache.dsw created to bring together all the pieces. Create new file
os/win32/BaseAddr.ref to define module base addresses (to prevent
dll relocation at start-up).
Submitted by: William Rowe
Reviewed by: Bill Stoddard
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85004 13f79535-47bb-0310-9956-ffa450edef68
contexts to after the worker thread pool is created. Sometime over that
last month or so, we checked something in that tanked performance about 15%.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84997 13f79535-47bb-0310-9956-ffa450edef68
the original file. This should solve a problem we were having with
dieing quietly on startup, because we are no longer closing stderr in the
original process and then opening the config file as file descriptor 2.
The original problem report can be found in the message
<20000311232812.A1066@sanguine.linuxcare.com.au>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84985 13f79535-47bb-0310-9956-ffa450edef68
needs to be there until we have a validating tree. Without this, it is
possible for a config file to read:
<Ifmodule mod_foo.c>
some directive
</Limit>
and still be read correctly. When the tree building functions can validate
for us, this should be removed, and there is a comment that says so.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84979 13f79535-47bb-0310-9956-ffa450edef68
1. Move the space stripping of physical service names
fix up from Apache 1.3.
2. #include'ing "ap_mpm.h" fixes up an unresolved symbol.
3. Add dependency checking to the CreateService call to ensure TCPIP and
AFP (winsock) is started before Apache.
Submitted by: William Rowe
Reviewed by: Bill Stoddard
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@84973 13f79535-47bb-0310-9956-ffa450edef68