Commit Graph

87 Commits

Author SHA1 Message Date
Ilia Alshanetsky
29be52fbfb A slightly better content-type check. 2002-10-04 21:31:34 +00:00
Ilia Alshanetsky
9f2b70d507 Added .phps support to Apache 2. It can be enabled by adding
AddType application/x-httpd-php-source .phps
to httpd.conf
2002-10-04 21:15:59 +00:00
Ilia Alshanetsky
44d42b8e13 Fixed bug #17466 2002-09-23 18:51:34 +00:00
Ilia Alshanetsky
8a1556b3a1 Fixed bug #17662 2002-09-23 04:10:25 +00:00
Zeev Suraski
b23adfb43b Fix double initialization 2002-09-21 01:53:15 +00:00
Zeev Suraski
76312b4508 another startup initialization fix - only ISAPI and CGI SAPI's tested,
minor compile buglets might occur in other SAPIs, but should be trivial
to fix...
2002-09-18 21:57:42 +00:00
Derick Rethans
2fda2eb4a8 - YAAC: I hope this is the last one! 2002-06-28 14:45:10 +00:00
Rasmus Lerdorf
890e01bebe @ Add runtime Apache2 thread check to ensure we don't run a non-threaded
@ PHP inside a threaded Apache2 MPM.  (Rasmus)
2002-06-24 16:04:20 +00:00
Rasmus Lerdorf
8a2ab01744 @ Turn off ZTS if Apache2 is using the prefork MPM. (Rasmus) 2002-06-24 14:51:01 +00:00
Stefan Esser
44a5b43b79 Fixing the same possible memory leak. 2002-06-21 14:47:59 +00:00
Sascha Schumann
5e148e3875 too many flushes are bad 2002-06-08 18:11:03 +00:00
Aaron Bannert
8e176a10fc Fix a graceful restart SEGV. We no longer only perform initialization
on the second pass through the post_config. Now we only avoid the
initialization only on the first DSO load, and on all subsequent loads
we rerun the init code.
2002-05-05 18:15:33 +00:00
Aaron Bannert
b759322411 Fix an elusive and intermittent startup SEGV. The problem was
the static string we were using to set an initialization flag
would get remapped to a different location when Apache reloaded
the DSO, causing us to not run our initialization routines.

Submitted by: Justin Erenkrantz <jerenkrantz@apache.org>
Reviewed by: Aaron Bannert (I added the big comment too)
2002-05-05 18:11:41 +00:00
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