Commit Graph

74 Commits

Author SHA1 Message Date
Aaron Bannert
b2f9b6fb16 Apache does a full load, unload, load cycle for each DSO module.
This patch makes sure that any startup actions that are performed
for PHP don't happen until the second load (the second call to
the post_config hook), and it also prevents subsequent calls
to the initialization routines.

Suggested By:   Cliff Woolley

PR: 16475, 16754
2002-04-24 00:55:38 +00:00
Aaron Bannert
3aa8a9b62b This patch implements a new Apache2 directive called PHPINIDir that
allows the specification of the php.ini directory from within the Apache
configuration. If left unset, the default is to defer to the hard-coded
php paths. When set, the supplied path is made relative to Apache's
internal ServerRoot setting.

Example:
PHPINIDir "conf"
# PHP will now look in the ServerRoot/conf directory for the php.ini file
2002-04-18 22:10:57 +00:00
Aaron Bannert
d11ee7c1ea Fix an intermittent SEGV when an error bubbled up from PHP before our
server context was set. Now if that happens we simply don't log against
any particular server config (vhost).

Obtained from bug report by:  Balazs Nagy <js@iksz.hu>
2002-04-18 16:34:06 +00:00
Aaron Bannert
2e3ce44c80 It makes more sense to do the null-pointer check *before* trying to use it.
(Also fix a typo that Cliff pointed out: "safe" --> "save".)

Obtained from:  Ryan Morgan <rmorgan@covalent.net>
2002-04-16 17:41:28 +00:00
foobar
b21931e6c3 ws fixes 2002-04-14 12:38:33 +00:00
Aaron Bannert
bf8bb929ac Fix a typo and a build error detected by the lovely HPUX11 ANSI C compiler. 2002-04-12 22:25:29 +00:00
Aaron Bannert
22fb507325 Fix a problem where php-generated data was pushed down the entire output
filter chain instead of just down the rest of the chain. This fix will
speed up some unnecessary overhead introduced in the last patch.

Suggested by:  Cliff Woolley <jwoolley@apache.org>
2002-04-11 20:34:56 +00:00
Aaron Bannert
27a5b380cf PHP filters and Apache 2 aren't quite a perfect match yet, so we have
to do some trickery with the server_context to make sure it is always
valid within the current thread.

This patch makes sure the server_context is created in apache's
post_read_request hook phase, and then registeres a cleanup that
will NULL out the server context when the request goes out of scope.
Then, inside the output filters, if the server_context is null we
throw an error. Finally, instead of saving the output filter in
the server_context, now we store the entire request_rec pointer
in there.

POST bodies appear to be working now, although they are very inefficient.
The input filter is still just realloc()ing for whatever data comes
down the input pipe, and then sending this to PHP. This means that
we are doing some really nasty memory management on big POST bodies.
For now this it allows for unlimited input bodies, which means that
a big POST could potentially DoS a box by making it run out of memory.
We might want to put a limit on here just in case, at least until
we figure out how to consume input data more efficiently into php.
2002-04-11 19:25:08 +00:00
Aaron Bannert
caf7f3d4d2 Don't depend on the context provided by the filter (f->ctx) anymore. In
Apache 2 the input and output filter contexts are kept unique. We now
only depend on SG(server_context) for each request, and assume that
the same thread will process the entire request. At some point it
would be wise to separate the input and output contexts.
2002-04-11 17:34:17 +00:00
Aaron Bannert
d19fd6a0ad Return the number of bytes consumed, not the number of bytes left.
Suggested by:  Brian Havard <brianh@kheldar.apana.org.au>
2002-04-11 17:22:11 +00:00
Sebastian Bergmann
38af983c80 Patch by Aaron Bannert <aaron@clove.org> and Cliff Woolley <jwoolley@virginia.edu>. 2002-04-11 06:01:54 +00:00
Doug MacEachern
eab1211ed1 adjust to recent apr bucket api changes 2002-03-29 15:42:18 +00:00
Sebastian Bergmann
118761e11e Sync with Apache2 Filter API change. 2002-03-13 07:11:00 +00:00
Doug MacEachern
a1b21e0c4c adjust to ap_get_brigade() API change 2002-01-25 04:03:42 +00:00
Doug MacEachern
cb0a09808f adjust to ap_get_brigade and input filter api changes 2002-01-20 18:44:15 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Sterling Hughes
d30044c969 Update to the latest apr api (patch by Clif Woolley) 2001-11-29 11:29:11 +00:00
Doug MacEachern
898099adba setup standard CGI variables 2001-11-13 21:40:01 +00:00
Jeroen van Wolffelaar
eb38ca844b Undo Z_ subst for sapi and ext/yaz 2001-09-27 20:01:23 +00:00
Jeroen van Wolffelaar
c033288573 Back-substitute for Z_* macro's. If it breaks some extension (the script isn't optimal, it parses for example var->zval.value incorrect) please let me know. 2001-09-25 21:58:48 +00:00
Daniel Beulshausen
d504c7ca4f let apache2 filter build under win32 2001-09-10 13:04:24 +00:00
Derick Rethans
78747bd2df - Don't wrap lines... this is annoying while coding. 2001-09-09 13:29:31 +00:00
Doug MacEachern
23f1b515a6 add php version component 2001-08-28 06:23:27 +00:00
Doug MacEachern
c614a9ed3d not all MPMs support child_init,
so move php_apache_server_startup to the post_config phase
(happens at server startup)
2001-08-28 06:19:58 +00:00
Sterling Hughes
766de15694 Add some editor modes (in the rest of the source) 2001-08-22 04:45:51 +00:00
Doug MacEachern
9b137805c8 automatically add php input/output filters when give the standard 1.x config:
AddType application/x-httpd-php .php
with that, no longer need "Set{In,Out}putFilter PHP" configuration for 2.0
2001-08-20 16:34:45 +00:00
Doug MacEachern
4829b93fb2 php_input_filter needs to ignore proxy requests
else it swallows POST data that needs to be sent to the downstream server
2001-08-19 21:07:50 +00:00
Sterling Hughes
ba4a1f2df2 Pass on proxy requests (fix by Doug MacEachern <dougm@covalent.net>) 2001-08-19 20:28:36 +00:00
Sterling Hughes
244c9ff3c9 Fix warning (Doug MacEachern, dougm@covalent.net) 2001-08-18 01:59:38 +00:00
Sterling Hughes
353f84c190 # f*ck @!e333u49/&§&$T§$&("E""! expandtab, that's it, the default in my
# vimrc is not noet
2001-08-18 01:36:29 +00:00
Sterling Hughes
0e12954669 fix crash bug (Doug MacEachern, dougm@covalent.net) 2001-08-18 01:34:19 +00:00
Ryan Bloom
1543904d71 Fix a seg fault in PHP. If a child process is created in the server,
using apr_proc_create, it will seg fault, because PHP is using a NULL
child cleanup.  To fix this, we have to use the special cleanup function,
apr_pool_cleanup_null.

This also fixes a compiler warning in the ap_log_error call.
2001-08-17 22:25:13 +00:00
Sterling Hughes
fe7b5a3434 darn noet 2001-08-16 06:09:12 +00:00
Sterling Hughes
b87834a12d Ryan Bloom's fix of my fix. ;) 2001-08-16 06:05:57 +00:00
Sterling Hughes
9395f0e6e2 Fix error logging 2001-08-16 05:19:29 +00:00
Sascha Schumann
8aef193056 more tsrm cleanup 2001-08-05 15:29:47 +00:00
Sascha Schumann
2cce13fd50 further tsrm cleanup 2001-08-05 14:27:39 +00:00
Sebastian Bergmann
25076098c0 Revert whitespace patch. 2001-08-03 05:05:47 +00:00
Sebastian Bergmann
fcfea1c55d Whitespace fixes. 2001-08-02 15:16:43 +00:00
Sebastian Bergmann
010c3b44ed Fix Apache2Filter build. 2001-08-02 15:14:30 +00:00
Sterling Hughes
e7ea61ad98 remove duplicate TSRMLS_FETCH() 2001-07-31 23:44:20 +00:00
Zeev Suraski
d87cc976e1 Redesigned thread safety mechanism - nua nua 2001-07-28 11:36:37 +00:00
Zeev Suraski
fe6f8712a4 - Get rid of ELS_*(), and use TSRMLS_*() instead.
- Move to the new ts_allocate_id() API
This patch is *bound* to break some files, as I must have had typos somewhere.
If you use any uncommon extension, please try to build it...
2001-07-27 10:16:41 +00:00
Sascha Schumann
a95101669d Handle file buckets for now; that allows us to pass something to the
engine which it can handle.
2001-07-23 04:50:13 +00:00
Sascha Schumann
0bbe77309d Accomodate an Apache API change 2001-06-22 23:20:49 +00:00
Sascha Schumann
ab1df8dfb9 Accomodate Apache HTTPD 2.0 API change 2001-04-24 12:57:34 +00:00
Sascha Schumann
2da359bb84 httpd-2.0 cvs seems to be busted. I'm getting very strange backtraces
and the header filter still seems to be broken.  Will try later.
2001-02-28 14:19:15 +00:00
Sascha Schumann
a824c87e6d Now it actually loads, but it segfaults upon a request. 2001-02-28 14:11:34 +00:00
Sascha Schumann
6ed0cbb140 Make the module compile again with the latest httpd-2.0 cvs. 2001-02-28 14:03:58 +00:00
Andi Gutmans
eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00