sockets updlite protocol support, with checksum coverage settings.

Close GH-10468
This commit is contained in:
David Carlier 2023-01-28 19:44:37 +00:00
parent 231ffaf394
commit 908d954de0
4 changed files with 36 additions and 1 deletions

2
NEWS
View file

@ -98,6 +98,8 @@ PHP NEWS
ACK delays. (David Carlier)
. Added DONTFRAGMENT support for path MTU discovery purpose. (David Carlier)
. Added AF_DIVERT for raw socket for divert ports. (David Carlier)
. Added SOL_UPDLITE, UDPLITE_RECV_CSCOV and UDPLITE_SEND_CSCOV for updlite
protocol support. (David Carlier)
- Standard:
. E_NOTICEs emitted by unserialize() have been promoted to E_WARNING. (timwolla)

View file

@ -141,6 +141,9 @@ PHP 8.3 UPGRADE NOTES
. IP_PMTUDISC_INTERFACE (Linux only).
. IP_PMTUDISC_OMIT (Linux only).
. AF_DIVERT (FreeBSD only).
. SOL_UDPLITE.
. UDPLITE_RECV_CSCOV.
. UDPLITE_SEND_CSCOV.
========================================
11. Changes to INI File Handling

View file

@ -1525,6 +1525,13 @@ const SOL_TCP = UNKNOWN;
* @cvalue IPPROTO_UDP
*/
const SOL_UDP = UNKNOWN;
#ifdef IPPROTO_UDPLITE
/**
* @var int
* @cvalue IPPROTO_UDPLITE
*/
const SOL_UDPLITE = UNKNOWN;
#endif
#if HAVE_IPV6
/**
@ -1769,6 +1776,20 @@ const IP_PMTUDISC_INTERFACE = UNKNOWN;
*/
const IP_PMTUDISC_OMIT = UNKNOWN;
#endif
#if defined(UDPLITE_SEND_CSCOV)
/**
* @var int
* @cvalue UDPLITE_SEND_CSCOV
*/
const UDPLITE_SEND_CSCOV = UNKNOWN;
#endif
#if defined(UDPLITE_RECV_CSCOV)
/**
* @var int
* @cvalue UDPLITE_RECV_CSCOV
*/
const UDPLITE_RECV_CSCOV = UNKNOWN;
#endif
/**
* @strict-properties

View file

@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: bf1d22072bd147128a33d82f8b3fc441cf95156a */
* Stub hash: d02c3c772eab5d9c1310839d2464887993f8e8de */
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)
@ -915,6 +915,9 @@ static void register_sockets_symbols(int module_number)
#endif
REGISTER_LONG_CONSTANT("SOL_TCP", IPPROTO_TCP, CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SOL_UDP", IPPROTO_UDP, CONST_PERSISTENT);
#if defined(IPPROTO_UDPLITE)
REGISTER_LONG_CONSTANT("SOL_UDPLITE", IPPROTO_UDPLITE, CONST_PERSISTENT);
#endif
#if HAVE_IPV6
REGISTER_LONG_CONSTANT("IPV6_UNICAST_HOPS", IPV6_UNICAST_HOPS, CONST_PERSISTENT);
#endif
@ -1018,6 +1021,12 @@ static void register_sockets_symbols(int module_number)
#if defined(IP_PMTUDISC_OMIT)
REGISTER_LONG_CONSTANT("IP_PMTUDISC_OMIT", IP_PMTUDISC_OMIT, CONST_PERSISTENT);
#endif
#if defined(UDPLITE_SEND_CSCOV)
REGISTER_LONG_CONSTANT("UDPLITE_SEND_CSCOV", UDPLITE_SEND_CSCOV, CONST_PERSISTENT);
#endif
#if defined(UDPLITE_RECV_CSCOV)
REGISTER_LONG_CONSTANT("UDPLITE_RECV_CSCOV", UDPLITE_RECV_CSCOV, CONST_PERSISTENT);
#endif
}
static zend_class_entry *register_class_Socket(void)