From 114ed732dbf963b209f93d81d8f0aaa81f3988f3 Mon Sep 17 00:00:00 2001 From: David Carlier Date: Tue, 26 Mar 2024 22:59:14 +0000 Subject: [PATCH] ext/sockets: adding Linux's TCP_SYNCNT constant. Useful to control how many SYN packets the client will send to the server before giving up establishing a connection if the server does not respond (usually 5 or 6 by default). --- UPGRADING | 1 + ext/sockets/sockets.stub.php | 7 +++++++ ext/sockets/sockets_arginfo.h | 5 ++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/UPGRADING b/UPGRADING index e6aacce4bc646..e0581c5bfcde1 100644 --- a/UPGRADING +++ b/UPGRADING @@ -558,6 +558,7 @@ PHP 8.4 UPGRADE NOTES . SO_EXCLUSIVEADDRUSE (Windows only). . SOCK_CONN_DGRAM (NetBSD only). . SOCK_DCCP (NetBSD only). + . TCP_SYNCNT (Linux only). - Sodium: . SODIUM_CRYPTO_AEAD_AEGIS128L_KEYBYTES diff --git a/ext/sockets/sockets.stub.php b/ext/sockets/sockets.stub.php index 846648d28f030..08e45eea8b5de 100644 --- a/ext/sockets/sockets.stub.php +++ b/ext/sockets/sockets.stub.php @@ -544,6 +544,13 @@ */ const TCP_CONGESTION = UNKNOWN; #endif +#ifdef TCP_SYNCNT +/** + * @var int + * @cvalue TCP_SYNCNT + */ +const TCP_SYNCNT = UNKNOWN; +#endif #ifdef SO_ZEROCOPY /** * @var int diff --git a/ext/sockets/sockets_arginfo.h b/ext/sockets/sockets_arginfo.h index 2d9f39b7cc2de..a26bd000af6f0 100644 --- a/ext/sockets/sockets_arginfo.h +++ b/ext/sockets/sockets_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: a99144c7c83a3f06e54a01bc21c0d30c9a21be29 */ + * Stub hash: c761db0839535812316a42200f68c7db22639d81 */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_socket_select, 0, 4, MAY_BE_LONG|MAY_BE_FALSE) ZEND_ARG_TYPE_INFO(1, read, IS_ARRAY, 1) @@ -535,6 +535,9 @@ static void register_sockets_symbols(int module_number) #if defined(TCP_CONGESTION) REGISTER_LONG_CONSTANT("TCP_CONGESTION", TCP_CONGESTION, CONST_PERSISTENT); #endif +#if defined(TCP_SYNCNT) + REGISTER_LONG_CONSTANT("TCP_SYNCNT", TCP_SYNCNT, CONST_PERSISTENT); +#endif #if defined(SO_ZEROCOPY) REGISTER_LONG_CONSTANT("SO_ZEROCOPY", SO_ZEROCOPY, CONST_PERSISTENT); #endif