Commit d3fa8bb497b for php.net

commit d3fa8bb497bf6b9877ea0c35fe7bb30115c3f53b
Author: Gina Peter Banyard <girgias@php.net>
Date:   Sat Aug 22 14:42:04 2026 +0100

    snmp: move stubs into an explicit global namespace

    In preparation for https://wiki.php.net/rfc/snmp_improvements_2026#implement_more_mib_parsing_and_value_output_controls

diff --git a/ext/snmp/snmp.stub.php b/ext/snmp/snmp.stub.php
index 0f939b5b23f..b40a2fcd9f2 100644
--- a/ext/snmp/snmp.stub.php
+++ b/ext/snmp/snmp.stub.php
@@ -1,257 +1,259 @@
 <?php

 /** @generate-class-entries */
-
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_SUFFIX
- */
-const SNMP_OID_OUTPUT_SUFFIX = UNKNOWN;
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_MODULE
- */
-const SNMP_OID_OUTPUT_MODULE = UNKNOWN;
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_FULL
- */
-const SNMP_OID_OUTPUT_FULL = UNKNOWN;
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_NUMERIC
- */
-const SNMP_OID_OUTPUT_NUMERIC = UNKNOWN;
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_UCD
- */
-const SNMP_OID_OUTPUT_UCD = UNKNOWN;
-/**
- * @var int
- * @cvalue NETSNMP_OID_OUTPUT_NONE
- */
-const SNMP_OID_OUTPUT_NONE = UNKNOWN;
-
-/**
- * @var int
- * @cvalue SNMP_VALUE_LIBRARY
- */
-const SNMP_VALUE_LIBRARY = UNKNOWN;
-/**
- * @var int
- * @cvalue SNMP_VALUE_PLAIN
- */
-const SNMP_VALUE_PLAIN = UNKNOWN;
-/**
- * @var int
- * @cvalue SNMP_VALUE_OBJECT
- */
-const SNMP_VALUE_OBJECT = UNKNOWN;
-
-/**
- * @var int
- * @cvalue ASN_BIT_STR
- */
-const SNMP_BIT_STR = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_OCTET_STR
- */
-const SNMP_OCTET_STR = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_OPAQUE
- */
-const SNMP_OPAQUE = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_NULL
- */
-const SNMP_NULL = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_OBJECT_ID
- */
-const SNMP_OBJECT_ID = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_IPADDRESS
- */
-const SNMP_IPADDRESS = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_GAUGE
- */
-const SNMP_COUNTER = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_UNSIGNED
- */
-const SNMP_UNSIGNED = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_TIMETICKS
- */
-const SNMP_TIMETICKS = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_UINTEGER
- */
-const SNMP_UINTEGER = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_INTEGER
- */
-const SNMP_INTEGER = UNKNOWN;
-/**
- * @var int
- * @cvalue ASN_COUNTER64
- */
-const SNMP_COUNTER64 = UNKNOWN;
-
-function snmpget(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmpgetnext(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmpwalk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmprealwalk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-/** @alias snmprealwalk */
-function snmpwalkoid(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmpset(string $hostname, string $community, array|string $object_id, array|string $type, array|string $value, int $timeout = -1, int $retries = -1): bool {}
-
-function snmp_get_quick_print(): bool {}
-
-function snmp_set_quick_print(bool $enable): true {}
-
-function snmp_set_enum_print(bool $enable): true {}
-
-function snmp_set_oid_output_format(int $format): true {}
-
-/** @alias snmp_set_oid_output_format */
-function snmp_set_oid_numeric_print(int $format): true {}
-
-function snmp2_get(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmp2_getnext(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmp2_walk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmp2_real_walk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmp2_set(string $hostname, string $community, array|string $object_id, array|string $type, array|string $value, int $timeout = -1, int $retries = -1): bool {}
-
-function snmp3_get(
-    string $hostname, string $security_name, string $security_level,
-    string $auth_protocol, string $auth_passphrase,
-    string $privacy_protocol, string $privacy_passphrase,
-    array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmp3_getnext(
-    string $hostname, string $security_name, string $security_level,
-    string $auth_protocol, string $auth_passphrase,
-    string $privacy_protocol, string $privacy_passphrase,
-    array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
-
-function snmp3_walk(
-    string $hostname, string $security_name, string $security_level,
-    string $auth_protocol, string $auth_passphrase,
-    string $privacy_protocol, string $privacy_passphrase,
-    array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmp3_real_walk(
-    string $hostname, string $security_name, string $security_level,
-    string $auth_protocol, string $auth_passphrase,
-    string $privacy_protocol, string $privacy_passphrase,
-    array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
-
-function snmp3_set(
-    string $hostname, string $security_name, string $security_level,
-    string $auth_protocol, string $auth_passphrase,
-    string $privacy_protocol, string $privacy_passphrase,
-    array|string $object_id, array|string $type, array|string $value,
-    int $timeout = -1, int $retries = -1): bool {}
-
-function snmp_set_valueretrieval(int $method): true {}
-
-function snmp_get_valueretrieval(): int {}
-
-function snmp_read_mib(string $filename): bool {}
-
-function snmp_init_mib(?string $mibdirs): void {}
-
-/** @not-serializable */
-class SNMP
+namespace
 {
-    /** @cvalue SNMP_VERSION_1 */
-    public const int VERSION_1 = UNKNOWN;
-    /** @cvalue SNMP_VERSION_2c */
-    public const int VERSION_2c = UNKNOWN;
-    /** @cvalue SNMP_VERSION_2c */
-    public const int VERSION_2C = UNKNOWN;
-    /** @cvalue SNMP_VERSION_3 */
-    public const int VERSION_3 = UNKNOWN;
-
-    /** @cvalue PHP_SNMP_ERRNO_NOERROR */
-    public const int ERRNO_NOERROR = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_ANY */
-    public const int ERRNO_ANY = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_GENERIC */
-    public const int ERRNO_GENERIC = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_TIMEOUT */
-    public const int ERRNO_TIMEOUT = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_ERROR_IN_REPLY */
-    public const int ERRNO_ERROR_IN_REPLY = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_OID_NOT_INCREASING */
-    public const int ERRNO_OID_NOT_INCREASING = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_OID_PARSING_ERROR */
-    public const int ERRNO_OID_PARSING_ERROR = UNKNOWN;
-    /** @cvalue PHP_SNMP_ERRNO_MULTIPLE_SET_QUERIES */
-    public const int ERRNO_MULTIPLE_SET_QUERIES = UNKNOWN;
-
-    /** @readonly */
-    public array $info;
-    public ?int $max_oids;
-    public int $valueretrieval;
-    public bool $quick_print;
-    public bool $enum_print;
-    public int $oid_output_format;
-    public bool $oid_increasing_check;
-    public int $exceptions_enabled;
-
-    public function __construct(int $version, string $hostname, string $community, int $timeout = -1, int $retries = -1) {}
-
-    /** @tentative-return-type */
-    public function close(): bool {}
-
-    /** @tentative-return-type */
-    public function setSecurity(
-        string $securityLevel, string $authProtocol = "", string $authPassphrase = "",
-        string $privacyProtocol = "", string $privacyPassphrase = "",
-        string $contextName = "", string $contextEngineId = ""): bool {}
-
-    /** @tentative-return-type */
-    public function get(array|string $objectId, bool $preserveKeys = false): mixed {}
-
-    /** @tentative-return-type */
-    public function getnext(array|string $objectId): mixed {}
-
-    /** @tentative-return-type */
-    public function walk(array|string $objectId, bool $suffixAsKey = false, int $maxRepetitions = -1, int $nonRepeaters = -1): array|false {}
-
-    /** @tentative-return-type */
-    public function set(array|string $objectId, array|string $type, array|string $value): bool {}
-
-    /** @tentative-return-type */
-    public function getErrno(): int {}
-
-    /** @tentative-return-type */
-    public function getError(): string {}
-}
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_SUFFIX
+     */
+    const SNMP_OID_OUTPUT_SUFFIX = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_MODULE
+     */
+    const SNMP_OID_OUTPUT_MODULE = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_FULL
+     */
+    const SNMP_OID_OUTPUT_FULL = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_NUMERIC
+     */
+    const SNMP_OID_OUTPUT_NUMERIC = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_UCD
+     */
+    const SNMP_OID_OUTPUT_UCD = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue NETSNMP_OID_OUTPUT_NONE
+     */
+    const SNMP_OID_OUTPUT_NONE = UNKNOWN;
+
+    /**
+     * @var int
+     * @cvalue SNMP_VALUE_LIBRARY
+     */
+    const SNMP_VALUE_LIBRARY = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue SNMP_VALUE_PLAIN
+     */
+    const SNMP_VALUE_PLAIN = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue SNMP_VALUE_OBJECT
+     */
+    const SNMP_VALUE_OBJECT = UNKNOWN;
+
+    /**
+     * @var int
+     * @cvalue ASN_BIT_STR
+     */
+    const SNMP_BIT_STR = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_OCTET_STR
+     */
+    const SNMP_OCTET_STR = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_OPAQUE
+     */
+    const SNMP_OPAQUE = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_NULL
+     */
+    const SNMP_NULL = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_OBJECT_ID
+     */
+    const SNMP_OBJECT_ID = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_IPADDRESS
+     */
+    const SNMP_IPADDRESS = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_GAUGE
+     */
+    const SNMP_COUNTER = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_UNSIGNED
+     */
+    const SNMP_UNSIGNED = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_TIMETICKS
+     */
+    const SNMP_TIMETICKS = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_UINTEGER
+     */
+    const SNMP_UINTEGER = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_INTEGER
+     */
+    const SNMP_INTEGER = UNKNOWN;
+    /**
+     * @var int
+     * @cvalue ASN_COUNTER64
+     */
+    const SNMP_COUNTER64 = UNKNOWN;
+
+    function snmpget(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmpgetnext(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmpwalk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmprealwalk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    /** @alias snmprealwalk */
+    function snmpwalkoid(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmpset(string $hostname, string $community, array|string $object_id, array|string $type, array|string $value, int $timeout = -1, int $retries = -1): bool {}
+
+    function snmp_get_quick_print(): bool {}
+
+    function snmp_set_quick_print(bool $enable): true {}
+
+    function snmp_set_enum_print(bool $enable): true {}
+
+    function snmp_set_oid_output_format(int $format): true {}
+
+    /** @alias snmp_set_oid_output_format */
+    function snmp_set_oid_numeric_print(int $format): true {}
+
+    function snmp2_get(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmp2_getnext(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmp2_walk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmp2_real_walk(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmp2_set(string $hostname, string $community, array|string $object_id, array|string $type, array|string $value, int $timeout = -1, int $retries = -1): bool {}
+
+    function snmp3_get(
+        string $hostname, string $security_name, string $security_level,
+        string $auth_protocol, string $auth_passphrase,
+        string $privacy_protocol, string $privacy_passphrase,
+        array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmp3_getnext(
+        string $hostname, string $security_name, string $security_level,
+        string $auth_protocol, string $auth_passphrase,
+        string $privacy_protocol, string $privacy_passphrase,
+        array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
+
+    function snmp3_walk(
+        string $hostname, string $security_name, string $security_level,
+        string $auth_protocol, string $auth_passphrase,
+        string $privacy_protocol, string $privacy_passphrase,
+        array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmp3_real_walk(
+        string $hostname, string $security_name, string $security_level,
+        string $auth_protocol, string $auth_passphrase,
+        string $privacy_protocol, string $privacy_passphrase,
+        array|string $object_id, int $timeout = -1, int $retries = -1): array|false {}
+
+    function snmp3_set(
+        string $hostname, string $security_name, string $security_level,
+        string $auth_protocol, string $auth_passphrase,
+        string $privacy_protocol, string $privacy_passphrase,
+        array|string $object_id, array|string $type, array|string $value,
+        int $timeout = -1, int $retries = -1): bool {}
+
+    function snmp_set_valueretrieval(int $method): true {}
+
+    function snmp_get_valueretrieval(): int {}
+
+    function snmp_read_mib(string $filename): bool {}
+
+    function snmp_init_mib(?string $mibdirs): void {}
+
+    /** @not-serializable */
+    class SNMP
+    {
+        /** @cvalue SNMP_VERSION_1 */
+        public const int VERSION_1 = UNKNOWN;
+        /** @cvalue SNMP_VERSION_2c */
+        public const int VERSION_2c = UNKNOWN;
+        /** @cvalue SNMP_VERSION_2c */
+        public const int VERSION_2C = UNKNOWN;
+        /** @cvalue SNMP_VERSION_3 */
+        public const int VERSION_3 = UNKNOWN;
+
+        /** @cvalue PHP_SNMP_ERRNO_NOERROR */
+        public const int ERRNO_NOERROR = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_ANY */
+        public const int ERRNO_ANY = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_GENERIC */
+        public const int ERRNO_GENERIC = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_TIMEOUT */
+        public const int ERRNO_TIMEOUT = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_ERROR_IN_REPLY */
+        public const int ERRNO_ERROR_IN_REPLY = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_OID_NOT_INCREASING */
+        public const int ERRNO_OID_NOT_INCREASING = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_OID_PARSING_ERROR */
+        public const int ERRNO_OID_PARSING_ERROR = UNKNOWN;
+        /** @cvalue PHP_SNMP_ERRNO_MULTIPLE_SET_QUERIES */
+        public const int ERRNO_MULTIPLE_SET_QUERIES = UNKNOWN;

-class SNMPException extends RuntimeException
-{
+        /** @readonly */
+        public array $info;
+        public ?int $max_oids;
+        public int $valueretrieval;
+        public bool $quick_print;
+        public bool $enum_print;
+        public int $oid_output_format;
+        public bool $oid_increasing_check;
+        public int $exceptions_enabled;
+
+        public function __construct(int $version, string $hostname, string $community, int $timeout = -1, int $retries = -1) {}
+
+        /** @tentative-return-type */
+        public function close(): bool {}
+
+        /** @tentative-return-type */
+        public function setSecurity(
+            string $securityLevel, string $authProtocol = "", string $authPassphrase = "",
+            string $privacyProtocol = "", string $privacyPassphrase = "",
+            string $contextName = "", string $contextEngineId = ""): bool {}
+
+        /** @tentative-return-type */
+        public function get(array|string $objectId, bool $preserveKeys = false): mixed {}
+
+        /** @tentative-return-type */
+        public function getnext(array|string $objectId): mixed {}
+
+        /** @tentative-return-type */
+        public function walk(array|string $objectId, bool $suffixAsKey = false, int $maxRepetitions = -1, int $nonRepeaters = -1): array|false {}
+
+        /** @tentative-return-type */
+        public function set(array|string $objectId, array|string $type, array|string $value): bool {}
+
+        /** @tentative-return-type */
+        public function getErrno(): int {}
+
+        /** @tentative-return-type */
+        public function getError(): string {}
+    }
+
+    class SNMPException extends RuntimeException
+    {
+    }
 }
diff --git a/ext/snmp/snmp_arginfo.h b/ext/snmp/snmp_arginfo.h
index 85b9a1131f1..d2faf5056b5 100644
Binary files a/ext/snmp/snmp_arginfo.h and b/ext/snmp/snmp_arginfo.h differ