Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Zend/zend_verify_type_inference.h
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,7 @@ static void zend_verify_inference_def(zend_execute_data *execute_data, const zen
}
if (opline->op1_def_type
&& (opline->op1_type & (IS_TMP_VAR|IS_VAR|IS_CV))
// array is actually changed by the the following instruction(s)
// array is actually changed by the following instruction(s)
&& opline->opcode != ZEND_FETCH_DIM_W
&& opline->opcode != ZEND_FETCH_DIM_RW
&& opline->opcode != ZEND_FETCH_DIM_FUNC_ARG
Expand Down
6 changes: 3 additions & 3 deletions docs/source/miscellaneous/writing-tests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1389,7 +1389,7 @@ Example 1 (full): :ref:`sample002.phpt`
``--EXPECT_EXTERNAL--``
-----------------------

**Description:** Similar to to ``--EXPECT--`` section, but just stating a filename where to load the
**Description:** Similar to ``--EXPECT--`` section, but just stating a filename where to load the
expected output from.

**Required:** One of the ``EXPECT`` type sections is required.
Expand Down Expand Up @@ -1526,7 +1526,7 @@ Example 2 (full): :ref:`sample020.phpt`
``--EXPECTF_EXTERNAL--``
------------------------

**Description:** Similar to to ``--EXPECTF--`` section, but like the ``--EXPECT_EXTERNAL--`` section
**Description:** Similar to ``--EXPECTF--`` section, but like the ``--EXPECT_EXTERNAL--`` section
just stating a filename where to load the expected output from.

**Required:** One of the ``EXPECT`` type sections is required.
Expand Down Expand Up @@ -1607,7 +1607,7 @@ Example 3 (snippet):
``--EXPECTREGEX_EXTERNAL--``
----------------------------

**Description:** Similar to to ``--EXPECTREGEX--`` section, but like the ``--EXPECT_EXTERNAL--``
**Description:** Similar to ``--EXPECTREGEX--`` section, but like the ``--EXPECT_EXTERNAL--``
section just stating a filename where to load the expected output from.

**Required:** One of the ``EXPECT`` type sections is required.
Expand Down
2 changes: 1 addition & 1 deletion ext/fileinfo/tests/magic
Original file line number Diff line number Diff line change
Expand Up @@ -39944,7 +39944,7 @@
# look for archive member RunTime.xml like in Microsoft.Windows.Cosa.Desktop.Client.ppkg
>>>156 search/68233/s RunTime.xml \bWindows provisioning package)
!:ext ppkg
# if is is not a Windows provisioning package, then it is a WIM
# if it is not a Windows provisioning package, then it is a WIM
>>>156 default x \bWIM) image
# second disk image part created by Microsoft's RecoveryDrive.exe has name Reconstruct.WIM2
!:ext wim/wim2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39944,7 +39944,7 @@
# look for archive member RunTime.xml like in Microsoft.Windows.Cosa.Desktop.Client.ppkg
>>>156 search/68233/s RunTime.xml \bWindows provisioning package)
!:ext ppkg
# if is is not a Windows provisioning package, then it is a WIM
# if it is not a Windows provisioning package, then it is a WIM
>>>156 default x \bWIM) image
# second disk image part created by Microsoft's RecoveryDrive.exe has name Reconstruct.WIM2
!:ext wim/wim2
Expand Down
2 changes: 1 addition & 1 deletion ext/gd/gd.c
Original file line number Diff line number Diff line change
Expand Up @@ -4309,7 +4309,7 @@ PHP_FUNCTION(imageresolution)
*
* Stream Handling
* Formerly contained within ext/gd/gd_ctx.c and included
* at the the top of this file
* at the top of this file
*
********************************************************/

Expand Down
4 changes: 2 additions & 2 deletions ext/openssl/xp_ssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -2231,9 +2231,9 @@ static inline int php_openssl_tcp_sockop_accept(php_stream *stream, php_openssl_
sockvals.tcp_nodelay = 1;
}
tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle");
if (tmpzval != NULL && Z_TYPE_P(tmpzval) == IS_LONG) {
if (tmpzval != NULL) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE;
sockvals.keepalive.keepidle = Z_LVAL_P(tmpzval);
sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval);
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ for ($i = 1; $i <= strlen($allBytes); $i *= 2) {
}

// We also expect that each possible value appears at least once, if
// not is is very likely that some bits were erroneously masked away.
// not it is very likely that some bits were erroneously masked away.
var_dump(count($count));

echo PHP_EOL;
Expand All @@ -67,7 +67,7 @@ for ($i = 1; ($i + 1) <= strlen($allBytes); $i *= 2) {
}

// We expect that each possible value appears at least once, if
// not is is very likely that some bits were erroneously masked away.
// not it is very likely that some bits were erroneously masked away.
var_dump(count($count));

echo PHP_EOL;
Expand All @@ -90,7 +90,7 @@ for ($j = 0; $j < strlen($result); $j++) {
}

// We also expect that each possible value appears at least once, if
// not is is very likely that some bits were erroneously masked away.
// not it is very likely that some bits were erroneously masked away.
var_dump(count($count));

?>
Expand Down
151 changes: 151 additions & 0 deletions ext/standard/tests/network/so_keepalive_string.phpt
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
--TEST--
stream_socket_server() and stream_socket_client() keepalive option test with string values
--EXTENSIONS--
sockets
--SKIPIF--
<?php
if (!defined('TCP_KEEPIDLE') && !defined('TCP_KEEPALIVE')) {
die('skip TCP_KEEPIDLE/TCP_KEEPALIVE not available');
}
if (!defined('TCP_KEEPINTVL')) {
die('skip TCP_KEEPINTVL not available');
}
if (!defined('TCP_KEEPCNT')) {
die('skip TCP_KEEPCNT not available');
}
?>
--FILE--
<?php
// Test server with SO_KEEPALIVE enabled
$server_context = stream_context_create([
'socket' => [
'so_keepalive' => true,
'tcp_keepidle' => '80',
'tcp_keepintvl' => '12',
'tcp_keepcnt' => '6',
]
]);

$server = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $server_context);

if (!$server) {
die('Unable to create server');
}

$addr = stream_socket_get_name($server, false);
$port = (int)substr(strrchr($addr, ':'), 1);

// Test client with SO_KEEPALIVE enabled
$client_context = stream_context_create([
'socket' => [
'so_keepalive' => true,
'tcp_keepidle' => '31',
'tcp_keepintvl' => '6',
'tcp_keepcnt' => '4',
]
]);

$client = stream_socket_client("tcp://127.0.0.1:$port", $errno, $errstr, 30,
STREAM_CLIENT_CONNECT, $client_context);

if (!$client) {
die('Unable to create client');
}

$accepted = stream_socket_accept($server, 1);

if (!$accepted) {
die('Unable to accept connection');
}

// Verify server side (accepted connection)
$server_sock = socket_import_stream($accepted);
$server_keepalive = socket_get_option($server_sock, SOL_SOCKET, SO_KEEPALIVE);
echo "Server SO_KEEPALIVE: " . ($server_keepalive ? "enabled" : "disabled") . "\n";

if (defined('TCP_KEEPIDLE')) {
$server_idle = socket_get_option($server_sock, SOL_TCP, TCP_KEEPIDLE);
echo "Server TCP_KEEPIDLE: $server_idle\n";
} else {
$server_idle = socket_get_option($server_sock, SOL_TCP, TCP_KEEPALIVE);
echo "Server TCP_KEEPIDLE: $server_idle\n";
}

$server_intvl = socket_get_option($server_sock, SOL_TCP, TCP_KEEPINTVL);
echo "Server TCP_KEEPINTVL: $server_intvl\n";

$server_cnt = socket_get_option($server_sock, SOL_TCP, TCP_KEEPCNT);
echo "Server TCP_KEEPCNT: $server_cnt\n";

// Verify client side
$client_sock = socket_import_stream($client);
$client_keepalive = socket_get_option($client_sock, SOL_SOCKET, SO_KEEPALIVE);
echo "Client SO_KEEPALIVE: " . ($client_keepalive ? "enabled" : "disabled") . "\n";

if (defined('TCP_KEEPIDLE')) {
$client_idle = socket_get_option($client_sock, SOL_TCP, TCP_KEEPIDLE);
echo "Client TCP_KEEPIDLE: $client_idle\n";
} else {
$client_idle = socket_get_option($client_sock, SOL_TCP, TCP_KEEPALIVE);
echo "Client TCP_KEEPIDLE: $client_idle\n";
}

$client_intvl = socket_get_option($client_sock, SOL_TCP, TCP_KEEPINTVL);
echo "Client TCP_KEEPINTVL: $client_intvl\n";

$client_cnt = socket_get_option($client_sock, SOL_TCP, TCP_KEEPCNT);
echo "Client TCP_KEEPCNT: $client_cnt\n";

fclose($accepted);
fclose($client);
fclose($server);

// Test server with SO_KEEPALIVE disabled
$server2_context = stream_context_create(['socket' => ['so_keepalive' => false]]);
$server2 = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $server2_context);

$addr2 = stream_socket_get_name($server2, false);
$port2 = (int)substr(strrchr($addr2, ':'), 1);

$client2 = stream_socket_client("tcp://127.0.0.1:$port2");
$accepted2 = stream_socket_accept($server2, 1);

$server2_sock = socket_import_stream($accepted2);
$server2_keepalive = socket_get_option($server2_sock, SOL_SOCKET, SO_KEEPALIVE);
echo "Server disabled SO_KEEPALIVE: " . ($server2_keepalive ? "enabled" : "disabled") . "\n";

fclose($accepted2);
fclose($client2);
fclose($server2);

// Test client with SO_KEEPALIVE disabled
$server3 = stream_socket_server("tcp://127.0.0.1:0", $errno, $errstr,
STREAM_SERVER_BIND | STREAM_SERVER_LISTEN);

$addr3 = stream_socket_get_name($server3, false);
$port3 = (int)substr(strrchr($addr3, ':'), 1);

$client3_context = stream_context_create(['socket' => ['so_keepalive' => false]]);
$client3 = stream_socket_client("tcp://127.0.0.1:$port3", $errno, $errstr, 30,
STREAM_CLIENT_CONNECT, $client3_context);

$client3_sock = socket_import_stream($client3);
$client3_keepalive = socket_get_option($client3_sock, SOL_SOCKET, SO_KEEPALIVE);
echo "Client disabled SO_KEEPALIVE: " . ($client3_keepalive ? "enabled" : "disabled") . "\n";

fclose($client3);
fclose($server3);
?>
--EXPECT--
Server SO_KEEPALIVE: enabled
Server TCP_KEEPIDLE: 80
Server TCP_KEEPINTVL: 12
Server TCP_KEEPCNT: 6
Client SO_KEEPALIVE: enabled
Client TCP_KEEPIDLE: 31
Client TCP_KEEPINTVL: 6
Client TCP_KEEPCNT: 4
Server disabled SO_KEEPALIVE: disabled
Client disabled SO_KEEPALIVE: disabled
22 changes: 8 additions & 14 deletions main/streams/xp_socket.c
Original file line number Diff line number Diff line change
Expand Up @@ -764,30 +764,27 @@ static inline int php_tcp_sockop_bind(php_stream *stream, php_netstream_data_t *
#if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE)
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE;
sockvals.keepalive.keepidle = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval);
}
#endif

#ifdef TCP_KEEPINTVL
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepintvl")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPINTVL;
sockvals.keepalive.keepintvl = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepintvl = (int)zval_get_long(tmpzval);
}
#endif

#ifdef TCP_KEEPCNT
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepcnt")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPCNT;
sockvals.keepalive.keepcnt = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepcnt = (int)zval_get_long(tmpzval);
}
#endif
}
Expand Down Expand Up @@ -895,30 +892,27 @@ static inline int php_tcp_sockop_connect(php_stream *stream, php_netstream_data_
#if defined(TCP_KEEPIDLE) || defined(TCP_KEEPALIVE)
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE;
sockvals.keepalive.keepidle = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval);
}
#endif

#ifdef TCP_KEEPINTVL
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepintvl")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPINTVL;
sockvals.keepalive.keepintvl = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepintvl = (int)zval_get_long(tmpzval);
}
#endif

#ifdef TCP_KEEPCNT
if (PHP_STREAM_CONTEXT(stream)
&& (tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepcnt")) != NULL
&& Z_TYPE_P(tmpzval) == IS_LONG
) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPCNT;
sockvals.keepalive.keepcnt = (int)Z_LVAL_P(tmpzval);
sockvals.keepalive.keepcnt = (int)zval_get_long(tmpzval);
}
#endif
}
Expand Down Expand Up @@ -976,9 +970,9 @@ static inline int php_tcp_sockop_accept(php_stream *stream, php_netstream_data_t
sockvals.tcp_nodelay = 1;
}
tmpzval = php_stream_context_get_option(PHP_STREAM_CONTEXT(stream), "socket", "tcp_keepidle");
if (tmpzval != NULL && Z_TYPE_P(tmpzval) == IS_LONG) {
if (tmpzval != NULL) {
sockvals.mask |= PHP_SOCKVAL_TCP_KEEPIDLE;
sockvals.keepalive.keepidle = Z_LVAL_P(tmpzval);
sockvals.keepalive.keepidle = (int)zval_get_long(tmpzval);
}
}

Expand Down
2 changes: 1 addition & 1 deletion sapi/fpm/fpm/events/kqueue.c
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ static int fpm_event_kqueue_wait(struct fpm_event_queue_s *queue, unsigned long
/* }}} */

/*
* Add a FD to to kevent queue
* Add a FD to kevent queue
*/
static int fpm_event_kqueue_add(struct fpm_event_s *ev) /* {{{ */
{
Expand Down
2 changes: 1 addition & 1 deletion scripts/dev/bless_tests.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ function insertOutput(string $phpt, string $out): string {
}

/**
* Implementation of the the Myers diff algorithm.
* Implementation of the Myers diff algorithm.
*
* Myers, Eugene W. "An O (ND) difference algorithm and its variations."
* Algorithmica 1.1 (1986): 251-266.
Expand Down
2 changes: 1 addition & 1 deletion win32/sendmail.c
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ static int Ack(char **server_response);
static unsigned long GetAddr(LPSTR szHost);
static int FormatEmailAddress(char* Buf, char* EmailAddress, char* FormatString);

/* This function is meant to unify the headers passed to to mail()
/* This function is meant to unify the headers passed to mail()
* This means, use PCRE to transform single occurrences of \n or \r in \r\n
* As a second step we also eliminate all \r\n occurrences which are:
* 1) At the start of the header
Expand Down