mirror of
https://github.com/php/php-src.git
synced 2024-11-28 20:34:29 +08:00
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fix bug #74764 and add a test case
This commit is contained in:
commit
21f8cd2a92
2
NEWS
2
NEWS
@ -12,6 +12,8 @@ PHP NEWS
|
||||
- Standard:
|
||||
. Fixed bug #73457 (Wrong error message when fopen FTP wrapped fails to open
|
||||
data connection). (Ville Hukkamäki)
|
||||
. Fixed bug #74764 (Bindto IPv6 works with file_get_contents but fails with
|
||||
stream_socket_client). (Ville Hukkamäki)
|
||||
|
||||
13 Sep 2018, PHP 7.2.10
|
||||
|
||||
|
24
ext/standard/tests/network/bug74764.phpt
Normal file
24
ext/standard/tests/network/bug74764.phpt
Normal file
@ -0,0 +1,24 @@
|
||||
--TEST--
|
||||
Bug #74764 IPv6 bindto fails with stream_socket_client()
|
||||
--SKIPIF--
|
||||
<?php
|
||||
/* following copied straight from the tcp6loop.phpt */
|
||||
@stream_socket_client('tcp://[::1]:0', $errno);
|
||||
if ($errno != 111) die('skip IPv6 not supported.');
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$context = stream_context_create(
|
||||
['socket' => array('bindto' => "[::]:0")]
|
||||
);
|
||||
$socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
|
||||
|
||||
$context = stream_context_create(
|
||||
array('socket' => array('bindto' => "0.0.0.0:0"))
|
||||
);
|
||||
$socket = stream_socket_client('tcp://localhost:1443', $errno, $errstr, 5, STREAM_CLIENT_CONNECT, $context);
|
||||
?>
|
||||
--EXPECTF--
|
||||
Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
|
||||
|
||||
Warning: stream_socket_client(): unable to connect to tcp://localhost:1443 (%s) in %s on line %d
|
@ -851,6 +851,9 @@ php_socket_t php_network_connect_socket_to_host(const char *host, unsigned short
|
||||
int local_address_len = 0;
|
||||
|
||||
if (sa->sa_family == AF_INET) {
|
||||
if (strchr(bindto,':')) {
|
||||
goto skip_bind;
|
||||
}
|
||||
struct sockaddr_in *in4 = emalloc(sizeof(struct sockaddr_in));
|
||||
|
||||
local_address = (struct sockaddr*)in4;
|
||||
|
Loading…
Reference in New Issue
Block a user