This is safe, because we have already dup'ed the socket for the CGI
process itself. This change allows CGI processes to fork long-lived
child processes without affecting how quickly the response gets back
to the broswer.
PR: 7273
Submitted by: Taketo Kabe <kabe@sra-tohoku.co.jp>
Reviewed by: Ryan Bloom
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88264 13f79535-47bb-0310-9956-ffa450edef68
some type safety. (unfortunately, our old "void*" is type-safe with the
new one, but over time we should be better)
*) Propagate the new type to all appropriate functions.
*) Random cleaning, whitespace, stylistic nits.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88225 13f79535-47bb-0310-9956-ffa450edef68
mod_cgi(d)'s post_config hook. Mod_include creates a hash table in the
post_config stage that mod_cgi(d) uses during it's post_config stage, so
it must be done in this order.
Submitted by: Brian Havard <brianh@kheldar.apana.org.au>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87992 13f79535-47bb-0310-9956-ffa450edef68
or absense of a file. finfo.filetype is defined as 0 if APR_NOFILE,
or a non-zero value if the file could be apr_stat()'ed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87933 13f79535-47bb-0310-9956-ffa450edef68
on my machine, but since this is security related, this should be tested
and scrutinized by as many people as possible.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87905 13f79535-47bb-0310-9956-ffa450edef68
NULL. using an existing file doesn't normally work: where would you get a
blank file to shove an FD into? expecting the user to assign to NULL is
error-prone (mod_isapi didn't).
*) always create and return a new file from apr_put_os_file()
*) reimplement apr_open_stderr() in terms of apr_put_os_file()
[ except for win32... some issues there ]
*) remove some (obsolete) inits to NULL
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87851 13f79535-47bb-0310-9956-ffa450edef68
This also allows mod_cgid to use ap_os_create_priviledged_process,
thus allowing for SuExec execution from mod_cgid. Currently, we do
not support everything that standard SuExec supports, but at least
it works minimally now.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87524 13f79535-47bb-0310-9956-ffa450edef68
keeps track of whether or not its post config hook has
been called before. Instead of a static variable (which
is replaced when the DSO is loaded a second time), use
userdata in the process pool.
Still to go: mod_file_cache, mod_rewrite
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87321 13f79535-47bb-0310-9956-ffa450edef68
the canonical error cleanup.
We wish to avoid reporting the boring error where we try to unlink
a socket which doesn't already exist. We only want to report
interesting stuff.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@87298 13f79535-47bb-0310-9956-ffa450edef68
the recent apr_ssize_t->apr_size_t changes. The problem in mod_cgid
was an int function which didn't have a return statement.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86934 13f79535-47bb-0310-9956-ffa450edef68
for CORE_EXPORT to AP_CORE_DECLARE (namespace protecting the wrapper)
and retitled API_EXPORT as AP_DECLARE and APR_EXPORT as APR_DECLARE.
All _VAR_ flavors changes to _DATA to be absolutely clear.
Thank you Greg, for the most obvious suggestion.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86609 13f79535-47bb-0310-9956-ffa450edef68
once we finish writing the request body to the cgi child process;
otherwise, the client doesn't hit EOF on stdin. Small request bodies
worked without this change (for reasons I don't understand), but large
ones didn't.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86574 13f79535-47bb-0310-9956-ffa450edef68
APR_STATUS_IS_EACCES(s)
APR_STATUS_IS_EEXIST(s)
APR_STATUS_IS_ENAMETOOLONG(s)
APR_STATUS_IS_ENOENT(s)
Where the old EACCES et. al. still exist, we have a problem (not yet
using APR at all)
More to come...
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86417 13f79535-47bb-0310-9956-ffa450edef68
systems have unsigned sockaddr len parameters; others have signed.
When passing the length by address (as to accept()) a warning is
generated if the sign is not correct.
This patch assumes that, if no native socklen_t is provided,
apr_socklen_t is always signed; that can be easily tweaked for
certain platforms later.
Inside APR, apr_socklen_t is only used currently in the Unix
implementation.
Submitted by: Victor J. Orlikowski <v.j.orlikowski@gte.net>
Reviewed by: Jeff Trawick
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86282 13f79535-47bb-0310-9956-ffa450edef68
(Yeah, it got closed during pool cleanup, but it is more understandable if
it is closed the same way for nph and !nph cgis.)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86203 13f79535-47bb-0310-9956-ffa450edef68
the CGI output should live in the request pool, not in pcgi. pcgi (in
the httpd processes, at least) isn't cleaned up until we restart httpd.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86201 13f79535-47bb-0310-9956-ffa450edef68
like mod_cgi, creating a single element bucket brigade that is passed to
the next filter. This is instead of making mod_cgid read from the socket,
and call ap_r* repeatedly.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86198 13f79535-47bb-0310-9956-ffa450edef68
filtering beginning to work. There is a hack that has been repeated
through this patch, we morph a pipe into a socket, and put the socket
into the BUFF. Everytime we do that, we are working with a pipe from
a CGI, and we should be creating a pipe bucket and passing that bucket
back. Because we don't actually have pipe buckets yet, we are using this
hack. When we get pipe buckets, this will be fixed.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86136 13f79535-47bb-0310-9956-ffa450edef68
see src/lib/apr/apr_compat.h for most details.
Also a few minor nits to get Win32 to build.
PR:
Obtained from:
Submitted by:
Reviewed by:
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@86008 13f79535-47bb-0310-9956-ffa450edef68
sense for that declaraion to move to ap_iol.h. This also modifies all of
the files that include iol_socket.h to include ap_iol.h
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@85934 13f79535-47bb-0310-9956-ffa450edef68