Commit Graph

165 Commits

Author SHA1 Message Date
Marcus Boerger
28970b9260 fix warning 2002-08-22 10:52:40 +00:00
Marcus Boerger
5e7a9af062 full decopling of size parameters of ob_start() and internal buffer handlers
#intended behaviour is now fully implemented,
2002-08-21 03:04:17 +00:00
Marcus Boerger
b98c26382f Ignore double_buffering for ob_start(). 2002-08-21 01:00:56 +00:00
Marcus Boerger
8e10659648 Revert ob_start() defaults to 40K/10K until i find a better solution. 2002-08-20 23:23:25 +00:00
Marcus Boerger
2a443b2e77 Changed handling of output buffer sizes.
@Added php.ini option "double_buffering" that forces an additional first
@output buffer and improved handling of buffer sizes. (Marcus)
2002-08-20 19:49:37 +00:00
Marcus Boerger
8b30aeacd8 -use of php_error_docref
-some more information in ob_get_status()
2002-08-19 18:47:23 +00:00
Rasmus Lerdorf
3ffe4cb1ff bool not boolean 2002-08-13 04:37:28 +00:00
Rasmus Lerdorf
34362341e9 Use int, not integer. 2002-08-13 04:31:59 +00:00
Marcus Boerger
21903dfc7e corrected handling of internal output buffers
minor fixs
2002-08-10 16:12:36 +00:00
Marcus Boerger
9c8ba935d6 Improved handling of output buffers (see news)\n#No trim for the string parameter... 2002-08-09 22:29:58 +00:00
Marcus Boerger
6d21c9465d Added php_ob_handler_used to check if a specific output handler is used
in c.
2002-08-05 18:54:53 +00:00
Marcus Boerger
fd26a5c0a9 -New function ob_list_handlers
@- Added ob_list_handlers() which returns an array of all active output
@  handlers. (marcus)
2002-08-05 03:09:42 +00:00
Zeev Suraski
2369533bf9 Remove redundant code (thanks to Jani for pointing that out) 2002-05-12 22:17:58 +00:00
Yasuo Ohgaki
2b5beee5ad Added estrdup() needed.
Fixed typo.
2002-05-08 11:44:14 +00:00
Zeev Suraski
fe127f93de We shouldn't force Content-length:, but much worse, it's wrong in many
cases (basically, unless you use output buffering to buffer all of your content,
it won't work;  output buffering is used for lots of different things as a
functional interface, and such buffers have no relation to Content-type at
all).
2002-05-04 23:23:16 +00:00
Sascha Schumann
707b8b019e Free string before overwriting it 2002-05-04 19:06:46 +00:00
Sascha Schumann
9743860d35 simplify handling of variables by maintaining two strings which
are simply appended instead of traversing the hash table on each
URL/form.

also fix an unconditional segfault in rshutdown due to efree'ing
a static char *.

remove remove_var, add reset_vars.  move the function declarations
into the right header file.
2002-05-04 18:33:13 +00:00
Yasuo Ohgaki
ae828233fe Forgot to dup strings. 2002-05-04 10:55:08 +00:00
Yasuo Ohgaki
b1b5e42251 Fixed reference to freed zval string value. 2002-05-04 09:46:44 +00:00
Yasuo Ohgaki
dfc48de0cb Fixed crash when buffer is over written in ob callback. (Bug $ 12227)
Added check current output function check for Centent-Length header.
@ Fixed output buffer crash when buffer is over written in callback. (Yasuo)
2002-05-04 03:02:51 +00:00
Thies C. Arntzen
9712a4b3c8 @ - Added output_add_rewrite_var() and output_remove_rewrite_var() to inject
@   and remove variables from the URL-Rewriter. (thies)
i have also modified the session module to use this - so it doesn't
need to fiddle with the output-system any more
2002-05-03 08:00:41 +00:00
Yasuo Ohgaki
5b83e9294c Change nest level to send Content-Length again. It seems this is the
best setting for now.

PHP will not send Content-Length always. It only sends when it is
possible to send. output_buffer=0 is supposed to disable chunked
output, but it seems it does not disable. It also behaves a litte
strange way. This should be addressed someday.

It is possible Content-Length header is not set. If it happens, try to
increase chunk size for now. (i.e. output_buffer=40960)

I included a little debug code for me and other develpers to play with,
when (NestLevel==1 && ObStatus==5), PHP sends Content-Length.
2002-05-02 13:55:05 +00:00
Yasuo Ohgaki
1103311eee Fixed header output. Only need to output header when it is actually sent to client. 2002-05-02 06:50:18 +00:00
Yasuo Ohgaki
8ee815ec91 Check buffer status 2002-05-02 04:04:59 +00:00
Yasuo Ohgaki
f61b795a8f Make Content-Type output always correct.
# Flushing buffer is needed to be fixed properly anyway...
2002-05-02 01:58:12 +00:00
Yasuo Ohgaki
43df0c78c0 Move Content-Length: header handling from zlib.c to output.c
When output buffer is enabled and header can be sent, Content-Length:
header is added always from now on.
2002-05-02 01:12:01 +00:00
Stanislav Malyshev
68e5f549c0 Init output_start_* to avoid "output started at ZZZZZ" messages
(which may result when output started while zend is neither compiling nor
executing - e.g., when file upload fails).
2002-04-24 16:53:07 +00:00
Jon Parise
57472aa318 Silence warning under Solaris 8 (WorkShop Compilers 5.0 98/12/15 C 5.0). 2002-03-04 10:58:00 +00:00
Hartmut Holzgraefe
bff90c71c1 typo fix 2002-03-02 16:41:55 +00:00
Yasuo Ohgaki
46bb7e0031 Do explicit test againt to FAILURE.
# Thanks Rasmus.
2002-03-01 09:29:32 +00:00
Yasuo Ohgaki
82a8d372e5 Added ob_get_status() to get array of buffers and it's status.
(DO NOT document this function yet)

Fixed crash bug with ob_end_*() function. ob_end_*() will not delete
buffers that may not be deleted.

php_start_ob_buffer() and php_ob_set_internal_handler() takes parameter for
if the buffer created may be deleted or not.

Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be
deleted until script finshes.

Changed ob_*() function that have void return type to bool. All ob_*()
functions return TRUE for success, FALSE for failure.

@ - Added ob_get_status() to get array of buffers and it's status. (Yasuo)
@ - Fixed crash bug with ob_end_*() function. ob_end_*() will not delete
@   buffers that may not be deleted. (Yasuo)
@ - Added 3rd parameter "bool erase" to ob_start(). If FALSE, buffer may not be
@   deleted until script finshes. (Yasuo)
@ - Changed ob_*() function that have void return type to bool. All ob_*()
@   functions return TRUE for success, FALSE for failure. (Yasuo)
2002-03-01 03:05:50 +00:00
Yasuo Ohgaki
88e3aa7af6 Legacy code removed.
This line incorrectly removes buffer.
This line was correct only when ouput.c does not support
nested output buffers. Fixed bug #15178
2002-02-07 02:50:28 +00:00
Yasuo Ohgaki
a3e676f64b pval -> zval
Check number of parameters
2002-02-05 07:37:42 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Derick Rethans
1f14640b3e - Added ob_get_level, which returns the nesting level of the output buffering
mechanism. (patch by Yasuo Ohgaki <yasuo_ohgaki@yahoo.com>)
@- Added ob_get_level, which returns the nesting level of the output buffering
@  mechanism. (Yasuo, Derick)
2001-12-03 07:43:53 +00:00
Derick Rethans
9190271cef - Added ob_flush and ob_clean functions, which do not end the buffer like
ob_end_flush and ob_end_clean do.
@- Added ob_flush and ob_clean functions, which flush and clean an
@  output buffer without destroying the buffer. (Derick)
2001-11-30 10:48:38 +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
Derick Rethans
78747bd2df - Don't wrap lines... this is annoying while coding. 2001-09-09 13:29:31 +00:00
Zeev Suraski
357dfd5f14 Support multiple chunked output buffering layers 2001-08-31 15:56:48 +00:00
Zeev Suraski
5c1c22764a Fix double freeing 2001-08-31 15:16:15 +00:00
Zeev Suraski
13ff183225 Move the trans-sid mechanism to use the output buffering mechanism.
Advantages:
- Would work with the output buffering mechanism in general, and with
  output compression in particular
- Should yield better performance (untested as of yet)
2001-08-25 15:57:42 +00:00
Zeev Suraski
e077c6bc28 Make it possible to enable chunked output buffering without providing
an output handling function
2001-08-11 22:55:00 +00:00
Sascha Schumann
373b3e101e more tsrm cleanup -- output.c is not doing any fetches anymore 2001-08-05 15:55:43 +00:00
Sascha Schumann
8aef193056 more tsrm cleanup 2001-08-05 15:29:47 +00:00
Sascha Schumann
aafdfe82cb further tsrm cleanup 2001-08-05 14:36:51 +00:00
Zeev Suraski
1159c84ab7 - TSRMLS_FETCH work
- whitespace fixes
2001-08-05 01:43:02 +00:00
Zeev Suraski
bc42c37513 More TSRMLS_FETCH work. Got it under 400 now. 2001-07-31 06:28:05 +00:00
Zeev Suraski
c43806f415 Zend compatibility patch 2001-07-30 08:24:42 +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
Zeev Suraski
6f297a370a Fix Windows build 2001-07-20 14:40:30 +00:00
Zeev Suraski
13ac04b8e5 Avoid getting bailouts on text output during shutdown. Text output is now
'officially' disabled during shutdown (this doesn't change the Apache module
behavior, but may change behavior of other server modules, in which it was
possible to emit output during shutdown;  I think it's a good step towards
consistency, though)
2001-07-20 13:59:00 +00:00
Thies C. Arntzen
5676e5ad05 use ZVAL_* macros 2001-07-11 15:27:37 +00:00
Sascha Schumann
ef13ab5750 Improve url scanner speed (up to 40% for large chunks of data)
and handle some corner cases better.  The scanner has been changed
to the format as proposed in "RE2C - A More Versatile Scanner Generator"
by Cowan et al.
2001-07-04 15:30:21 +00:00
Zeev Suraski
551f1831a7 Fix a major thread safety bug in the output mechanism
@- Fixed a major memory corruption bug in the thread safe version (Zeev)
2001-07-02 18:17:10 +00:00
Zeev Suraski
f35b85b4c1 Fix bug #11678 2001-06-26 18:30:31 +00:00
Rasmus Lerdorf
81e2cf03ac Fix folding and clean up some extensions 2001-06-06 13:06:12 +00:00
Rasmus Lerdorf
25c3a3a39d vim-6 does folding - clean up a bunch of missing folding tags plus
some misguided RINIT and RSHUTDOWN calls in a few fringe extensions
2001-06-05 13:12:10 +00:00
Andrei Zmievski
daefeb59d5 Kill warning. 2001-05-29 20:32:57 +00:00
Andi Gutmans
4ddb24366f - Fix problem of output initialization 2001-05-23 16:52:45 +00:00
Andi Gutmans
177934732b - Start nuking not needed GINIT 2001-05-22 19:19:04 +00:00
Zeev Suraski
ff11c36dc5 Avoid crashing if somehow, output is sent in a new thread tha had no requests 2001-05-07 22:00:13 +00:00
Anil Madhavapeddy
d26ec12ba2 Free the correct output buffer, to avoid a segfault on a HEAD request
when using output buffering with a custom handler (patch by zeev@)
2001-04-02 16:45:27 +00:00
Zeev Suraski
b865380edb Fix headers handling with output buffering 2001-03-31 22:53:19 +00:00
André Langhorst
7d50e21a4b fix typo 2001-03-28 20:08:49 +00:00
André Langhorst
339ac67ce3 fix proto 2001-03-28 19:41:38 +00:00
Zeev Suraski
34b2fc4a6c Fix the output buffering bug Andre found 2001-03-17 03:03:50 +00:00
Zeev Suraski
9a04f870ab Fix freeing of buffers 2001-03-06 19:38:33 +00:00
Zeev Suraski
93e9e7521a Fixes to internal output buffering 2001-03-06 18:29:00 +00:00
Zeev Suraski
0ece429a16 More internal output buffering fixes 2001-03-06 16:28:51 +00:00
Zeev Suraski
20d2432c86 Fix internal output buffering 2001-03-06 16:25:14 +00:00
Zeev Suraski
13a97fefeb Initial work on internal output handlers - should be much quicker 2001-03-06 15:54:49 +00:00
Zeev Suraski
a22ada795f Improve memory consumption on chunked output buffering 2001-03-04 15:46:13 +00:00
Zeev Suraski
c64fe7fbe1 Fix non-thread safe mode 2001-03-04 01:45:19 +00:00
Zeev Suraski
0a98aa6ada Improve chunked output buffering - the output handler now knows at which stage it is 2001-03-04 01:09:36 +00:00
Zeev Suraski
b8787bf2d8 Fix chunked output buffering support 2001-02-27 00:09:14 +00:00
Andi Gutmans
eb6ba01d1c - Fix copyright notices with 2001 2001-02-26 06:11:02 +00:00
Sascha Schumann
7eb8469679 Avoid possible memory leak in the URL scanner, if the connection is
interrupted during writing the output.
2001-01-09 16:45:19 +00:00
Zeev Suraski
888f376e4c Very initial work on chunked output buffering. It's really unoptimized at
this time, and it can crash under some circumstances, but that's the
concept...
2000-11-23 18:43:18 +00:00
Kristian Köhntopp
89d6b5b5bd Prototype corrected. 2000-11-12 22:13:35 +00:00
Zeev Suraski
816f1f7903 - Fixed a bug that caused PHP not to properly flush its output buffer, if more
than one output buffer was used
2000-11-02 16:46:30 +00:00
Thies C. Arntzen
825457ae64 update my email. 2000-10-29 09:14:55 +00:00
Sascha Schumann
2517250b35 The type has changed to size_t. 2000-10-26 18:10:57 +00:00
Sterling Hughes
9f86ff884f @Add a php.ini option session.use_trans_sid to enable/disable trans-sid. (Sterling) 2000-09-04 22:21:10 +00:00
Andi Gutmans
e47d4fe249 - Increase buffers of output buffering to 40KB and 10KB increments which
makes more sense when web pages are typically like 10KB-20KB.
  I think it would be best to change the reallocation algorithm at least to
  redoubling when it's full instead of incrementing and possibly use
  a data structure similar to Zend/zend_static_allocator which uses memory
  blocks and not realloc().
2000-09-03 19:57:06 +00:00
Zeev Suraski
2183e2b0be Make gcc happy 2000-09-03 15:58:50 +00:00
Zeev Suraski
48f13455be Fix init bug 2000-09-03 15:56:54 +00:00
Zeev Suraski
cf8e389799 @- Added support for an optional output handler function for output
@  buffering.  This enables transparent rendering of XML through XSL,
@  transparent compression, etc. (Zeev)
2000-09-02 18:03:58 +00:00
Stig Bakken
03471b21ee @Added ob_get_length function (Stig)
Added ob_get_length() function (returns size of buffer)
2000-08-25 03:10:42 +00:00
Zeev Suraski
52ff887db5 Made ob_start() and friends reentrant. It's now possible to implement this
long-requested functionality, now that output buffering is re-entrant:

function eval_ret($code)
{
	ob_start();
	eval($code);
	$retval = ob_get_contents();
	ob_end_clean();
	return $retval;
}
2000-07-29 14:46:09 +00:00
David Croft
83513d9580 Changed lots of PHP 3 licence headers to PHP 4, mainly in .h files.
Added a few RCS $Id$ tags.

# Note: I have avoided changing any .h files if the corresponding .c file
# had not already been changed as I am not sure if there are any legal
# issues here. So some extensions still have PHP 3 headers.
2000-07-24 01:40:02 +00:00
Zeev Suraski
d1a6a64675 - Make the output globals accessible from the outside world
- Fix Win32 compilation
2000-06-24 13:27:34 +00:00
Andi Gutmans
d7ac0f2c9d - I didn't have anything to do with this buggy code. Just kidding :) 2000-06-06 18:54:00 +00:00
Hartmut Holzgraefe
df4547a3df another bunch of proto fixes 2000-05-23 23:13:02 +00:00
Zeev Suraski
e043439ff6 Update the license with the new clause 6 2000-05-18 15:34:45 +00:00
Egon Schmid
f1c268d79a Corrected some protos. 2000-04-18 20:00:21 +00:00
Zeev Suraski
c007a7232d Document the ob_*() functions 2000-04-18 19:18:47 +00:00
Stig Bakken
99e0b36321 @Cleaned up extension namespace (Stig)
Cleaned up extension namespace, and changed ext/standard into one single
extension.
2000-03-06 20:37:11 +00:00
Zeev Suraski
86fa2aade2 the pipe is breaking all the time 2000-02-19 23:41:32 +00:00
Zeev Suraski
8055da9830 Use the new state functions
@- If header information is sent after output has already been sent, the warning
@  message will now state the filename and line number at which the first output
@  was made (Zeev)
2000-02-04 14:54:30 +00:00