| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
| |
If we create separate listening sockets in each worker using
SO_REUSEADDR, then an incoming connection may be load-balanced
to a process that is already busy, either due to a long-running
request, or because it is a recursive request (in which case we
would deadlock).
Instead, only create one listening socket, and only create worker
forks afterwards. This way the incoming request will be served
by one of the workers that is currently listening for an incoming
connection.
|
|\
| |
| |
| |
| | |
* PHP-7.4:
Update year to 2021
|
| |
| |
| |
| | |
Closes GH-6636.
|
| |
| |
| |
| | |
Closes GH-6376
|
| |
| |
| |
| | |
Closes GH-6363.
|
| | |
|
| |
| |
| |
| | |
Closes GH-6259
|
| |
| |
| |
| | |
Closes GH-6214.
|
| |
| |
| |
| | |
Closes GH-6166
|
| |
| |
| |
| |
| | |
This should fix most of the remaining issues with tabs and spaces
being mixed in tests.
|
| | |
|
| | |
|
| |
| |
| |
| | |
Closes GH-6049.
|
| |
| |
| |
| |
| |
| |
| | |
On Windows, we have to check whether stdout is attached to a console,
and whether that console supports VT100 control codes.
Closes GH-5996
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The Apache MIME type map is not actively maintained anymore, so
this switches to jshttp/mime-db, which seems to be the de-facto
standard in this area now. This avoid the need to patch in our
own MIME types over time.
The preference algorithm is based on:
https://github.com/jshttp/mime-types/blob/47b62ac45e9b176a2af35532d0eea4968bb9eb6d/index.js#L154
Closes GH-5764.
|
| |
| |
| |
| |
| |
| | |
We might just want to drop this completely, but at least don't
enable it by default. It already gets disabled by a number of
SAPIs, but we should make that the default state.
|
| |
| |
| |
| |
| |
| |
| | |
The primary issue was already resolved in 7c3e487289ec41e560cf7a77e36eb43da2234f33,
but the particular example used in this bug report ran into an
additional issue on PHP 8, because I forgot to drop a number of
zend_bailout calls when switch require failure to throw.
|
| |
| |
| |
| |
| |
| | |
Make EG(exit_status) the single source of truth for the exit status,
instead of having two variables that we cannot really keep
synchronized.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Make sure we don't execute further scripts if one of them encountered
an exit exception.
Also make sure that we free file handles that end up unused due to
an early abort in php_execute_scripts(), which turned up as an
issue in the added test case.
Finally, make use of EG(exit_status) in the places where we
zend_eval_string_ex, instead of unconditionally assigning exit
code 254. If an error occurs, the error handler will already set
exit status 255.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Unconditionally strip shebang lines when using the CLI SAPI,
independently of whether they occur in the primary or non-primary
script. It's unlikely that someone intentionally wants to print
that shebang line when including a script, and this regularly
causes issues when scripts are used in multiple contexts, e.g.
for direct invocation and as a phar bootstrap.
|
| | |
|
|\ \
| |/
| |
| |
| |
| | |
* PHP-7.4:
Check ps -p availability in process title test
Add privilege check in pcntl_unshare test
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In practice, we always act as an HTTP/1.1 client, for compatibility
with servers which ignore protocol version. Sending the version in
the request will avoid problems with servers which don't ignore it.
HTTP/1.0 can still be forced using a stream context option.
Closes GH-5899.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Prevent test case from stalling
|
| |
| |
| |
| |
| |
| |
| | |
If the CTRL-C event can't be sent to the child for whatever reason, the
test will never terminate, because `proc_close()` waits for an infinite
amount of time. Therefore, we `proc_terminate()` the child instead,
after explicitly closing the pipes.
|
|\ \
| |/
| |
| |
| | |
* PHP-7.4:
Fix #77932: File extensions are case-sensitive
|
| |\
| | |
| | |
| | |
| | | |
* PHP-7.3:
Fix #77932: File extensions are case-sensitive
|
| | |
| | |
| | |
| | |
| | |
| | | |
The file extension to mime type mapping *must* not depend on the file
extension's case for case-insensitive file systems, and *should* not
for case-sensitive file systems.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This test failed when the free disk space is close to 2.15GB.
I see the file size in the .out file as 0.
PHP has to save the full file contents to disk (the path is in `$_FILES`)
Related to GH-5283
Closes GH-5873
|
| | |
| | |
| | |
| | | |
Closes GH-5590
|
| | |
| | |
| | |
| | | |
Closes GH-5295.
|
| | | |
|
| | |
| | |
| | |
| | | |
Closes GH-5758
|
| | |
| | |
| | |
| | | |
Closes GH-5779
|
| | |
| | |
| | |
| | | |
This makes it easier to compare mime data from different sources.
|
| | |
| | |
| | |
| | |
| | | |
The PHP file is space indented, but we need the C file to be tab
indented.
|
| | | |
|
| | |
| | |
| | |
| | | |
The error message changed here.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Formerly, this had to be enabled by passing the configuration flag
`--enable-crt-debug`; now it can be enabled by setting the environment
variable `PHP_WIN32_DEBUG_HEAP`. The advantage is that it is no longer
necessary to do separate builds, at the cost of a very minor
performance penalty during process startup.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds the following APIs:
void zend_call_known_function(
zend_function *fn, zend_object *object, zend_class_entry *called_scope,
zval *retval_ptr, int param_count, zval *params);
void zend_call_known_instance_method(
zend_function *fn, zend_object *object, zval *retval_ptr, int param_count, zval *params);
void zend_call_known_instance_method_with_0_params(
zend_function *fn, zend_object *object, zval *retval_ptr);
void zend_call_known_instance_method_with_1_params(
zend_function *fn, zend_object *object, zval *retval_ptr, zval *param);
void zend_call_known_instance_method_with_2_params(
zend_function *fn, zend_object *object, zval *retval_ptr, zval *param1, zval *param2);
These are used to perform a call if you already have the
zend_function you want to call. zend_call_known_function()
is the base API, the rest are just really thin wrappers around
it for the common case of instance method calls.
Closes GH-5692.
|
| | |
| | |
| | |
| | | |
Closes GH-5676.
|
| | |
| | |
| | |
| | | |
Close GH-5675.
|
| | |
| | |
| | |
| | | |
Closes GH-5673.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes the zend_error_cb API simpler, and avoid formatting
the same message in multiple places.
It should be noted that the passed zend_string is always
non-persistent, so if you want to store it persistently somewhere,
you may still need to duplicate it.
The last_error_message is cleared a bit more aggressive, to make
sure it doesn't hang around across allocator life-cycles.
Closes GH-5639.
|
|\ \ \
| |/ /
| | |
| | |
| | | |
* PHP-7.4:
Fix #79650: php-win.exe 100% cpu lockup
|
| |\ \
| | |/
| | |
| | |
| | | |
* PHP-7.3:
Fix #79650: php-win.exe 100% cpu lockup
|
| | |
| | |
| | |
| | |
| | |
| | | |
As of PHP 7.3.0, `sapi_cli_single_write()` is supposed to return `< 0`
on failure, but `fwrite()` returns a `size_t`, and signals error by
setting the stream's error indicator. We have to cater to that.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Exception::$previous is a private property, so we can add a type:
private ?Throwable $previous = null;
|