diff --git a/Zend/zend_verify_type_inference.h b/Zend/zend_verify_type_inference.h index 0add01933495f..8e9cbcbc181f1 100644 --- a/Zend/zend_verify_type_inference.h +++ b/Zend/zend_verify_type_inference.h @@ -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 diff --git a/docs/source/miscellaneous/writing-tests.rst b/docs/source/miscellaneous/writing-tests.rst index 4c46dad638b6c..8c4e0535763cc 100644 --- a/docs/source/miscellaneous/writing-tests.rst +++ b/docs/source/miscellaneous/writing-tests.rst @@ -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. @@ -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. @@ -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. diff --git a/ext/fileinfo/tests/magic b/ext/fileinfo/tests/magic index e8ad0f0ce7843..c8783aea05c71 100644 --- a/ext/fileinfo/tests/magic +++ b/ext/fileinfo/tests/magic @@ -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 diff --git "a/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" "b/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" index e8ad0f0ce7843..c8783aea05c71 100644 --- "a/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" +++ "b/ext/fileinfo/tests/magic\347\247\201\343\201\257\343\202\254\343\203\251\343\202\271\343\202\222\351\243\237\343\201\271\343\202\211\343\202\214\343\201\276\343\201\231" @@ -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 diff --git a/ext/gd/gd.c b/ext/gd/gd.c index 60b2ad65bf65e..135cff7fcc639 100644 --- a/ext/gd/gd.c +++ b/ext/gd/gd.c @@ -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 * ********************************************************/ diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index 482715c745554..f1d5883b76b4b 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -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); } } diff --git a/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt b/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt index 84c8ec611db80..7d7b98f1b27a9 100644 --- a/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt +++ b/ext/random/tests/03_randomizer/methods/getBytesFromString_fast_path.phpt @@ -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; @@ -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; @@ -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)); ?> diff --git a/ext/standard/tests/network/so_keepalive_string.phpt b/ext/standard/tests/network/so_keepalive_string.phpt new file mode 100644 index 0000000000000..19cb2f9c6dec9 --- /dev/null +++ b/ext/standard/tests/network/so_keepalive_string.phpt @@ -0,0 +1,151 @@ +--TEST-- +stream_socket_server() and stream_socket_client() keepalive option test with string values +--EXTENSIONS-- +sockets +--SKIPIF-- + +--FILE-- + [ + '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 diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c index 7a7f007f9183d..edf1751ec33b5 100644 --- a/main/streams/xp_socket.c +++ b/main/streams/xp_socket.c @@ -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 } @@ -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 } @@ -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); } } diff --git a/sapi/fpm/fpm/events/kqueue.c b/sapi/fpm/fpm/events/kqueue.c index 09f5da12799be..21939d3414182 100644 --- a/sapi/fpm/fpm/events/kqueue.c +++ b/sapi/fpm/fpm/events/kqueue.c @@ -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) /* {{{ */ { diff --git a/scripts/dev/bless_tests.php b/scripts/dev/bless_tests.php index 58baeac402462..7493a504729c4 100755 --- a/scripts/dev/bless_tests.php +++ b/scripts/dev/bless_tests.php @@ -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. diff --git a/win32/sendmail.c b/win32/sendmail.c index 394676f30316d..f267d1fae85ab 100644 --- a/win32/sendmail.c +++ b/win32/sendmail.c @@ -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