From 6f0a04037ebe3986b69dd82e32eb7f81218ea5bd Mon Sep 17 00:00:00 2001 From: David Carlier Date: Sat, 10 Aug 2024 18:54:39 +0000 Subject: [PATCH] ext/sockets: controlling ephemeral port ranges on *BSD. whether ephemeral ports are onto the privileged low port ranges or a range more fit for restricted scenarios. --- ext/sockets/sockets.stub.php | 23 +++++++++++++++++++++++ ext/sockets/sockets_arginfo.h | 14 +++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/ext/sockets/sockets.stub.php b/ext/sockets/sockets.stub.php index 2366605785851..f1724359c7ded 100644 --- a/ext/sockets/sockets.stub.php +++ b/ext/sockets/sockets.stub.php @@ -711,6 +711,29 @@ const IPV6_V6ONLY = UNKNOWN; #endif +#ifdef IP_PORTRANGE +/** + * @var int + * @cvalue IP_PORTRANGE + */ +const IP_PORTRANGE = UNKNOWN; +/** + * @var int + * @cvalue IP_PORTRANGE_DEFAULT + */ +const IP_PORTRANGE_DEFAULT = UNKNOWN; +/** + * @var int + * @cvalue IP_PORTRANGE_HIGH + */ +const IP_PORTRANGE_HIGH = UNKNOWN; +/** + * @var int + * @cvalue IP_PORTRANGE_LOW + */ +const IP_PORTRANGE_LOW = UNKNOWN; +#endif + #ifdef EPERM /** * Operation not permitted diff --git a/ext/sockets/sockets_arginfo.h b/ext/sockets/sockets_arginfo.h index e14be3edb2795..85e3796b5f2b5 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: e43c00bcb6af1c0a20a92162457883e3a33b4a53 */ + * Stub hash: 434b5b721d0f89b6113de4331e9044c891b2bb16 */ 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) @@ -602,6 +602,18 @@ static void register_sockets_symbols(int module_number) #if defined(IPV6_V6ONLY) REGISTER_LONG_CONSTANT("IPV6_V6ONLY", IPV6_V6ONLY, CONST_PERSISTENT); #endif +#if defined(IP_PORTRANGE) + REGISTER_LONG_CONSTANT("IP_PORTRANGE", IP_PORTRANGE, CONST_PERSISTENT); +#endif +#if defined(IP_PORTRANGE) + REGISTER_LONG_CONSTANT("IP_PORTRANGE_DEFAULT", IP_PORTRANGE_DEFAULT, CONST_PERSISTENT); +#endif +#if defined(IP_PORTRANGE) + REGISTER_LONG_CONSTANT("IP_PORTRANGE_HIGH", IP_PORTRANGE_HIGH, CONST_PERSISTENT); +#endif +#if defined(IP_PORTRANGE) + REGISTER_LONG_CONSTANT("IP_PORTRANGE_LOW", IP_PORTRANGE_LOW, CONST_PERSISTENT); +#endif #if defined(EPERM) REGISTER_LONG_CONSTANT("SOCKET_EPERM", EPERM, CONST_PERSISTENT); #endif