Skip to content

Commit 9543a27

Browse files
committed
Declare ext/snmp constants in stubs
1 parent eff9aed commit 9543a27

File tree

4 files changed

+273
-42
lines changed

4 files changed

+273
-42
lines changed

ext/snmp/php_snmp.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,7 @@ ZEND_END_MODULE_GLOBALS(snmp)
9292
#define SNMP_G(v) (snmp_globals.v)
9393
#endif
9494

95-
#define REGISTER_SNMP_CLASS_CONST_LONG(const_name, value) \
96-
zend_declare_class_constant_long(php_snmp_ce, const_name, sizeof(const_name)-1, (zend_long)value);
95+
#define LONG_CONST(c) (zend_long) c;
9796

9897
#else
9998

ext/snmp/snmp.c

+4-39
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
#include "zend_exceptions.h"
3232
#include "zend_smart_string.h"
3333
#include "ext/spl/spl_exceptions.h"
34-
#include "snmp_arginfo.h"
3534

3635
#ifdef HAVE_SNMP
3736

@@ -78,6 +77,8 @@ extern netsnmp_log_handler *logh_head;
7877
#define SNMP_VALUE_PLAIN (1 << 0)
7978
#define SNMP_VALUE_OBJECT (1 << 1)
8079

80+
#include "snmp_arginfo.h"
81+
8182
typedef struct snmp_session php_snmp_session;
8283

8384
#define PHP_SNMP_ADD_PROPERTIES(a, b) \
@@ -2052,47 +2053,11 @@ PHP_MINIT_FUNCTION(snmp)
20522053
zend_hash_init(&php_snmp_properties, 0, NULL, free_php_snmp_properties, 1);
20532054
PHP_SNMP_ADD_PROPERTIES(&php_snmp_properties, php_snmp_property_entries);
20542055

2055-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_SUFFIX", NETSNMP_OID_OUTPUT_SUFFIX, CONST_CS | CONST_PERSISTENT);
2056-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_MODULE", NETSNMP_OID_OUTPUT_MODULE, CONST_CS | CONST_PERSISTENT);
2057-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_FULL", NETSNMP_OID_OUTPUT_FULL, CONST_CS | CONST_PERSISTENT);
2058-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_NUMERIC", NETSNMP_OID_OUTPUT_NUMERIC, CONST_CS | CONST_PERSISTENT);
2059-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_UCD", NETSNMP_OID_OUTPUT_UCD, CONST_CS | CONST_PERSISTENT);
2060-
REGISTER_LONG_CONSTANT("SNMP_OID_OUTPUT_NONE", NETSNMP_OID_OUTPUT_NONE, CONST_CS | CONST_PERSISTENT);
2061-
2062-
REGISTER_LONG_CONSTANT("SNMP_VALUE_LIBRARY", SNMP_VALUE_LIBRARY, CONST_CS | CONST_PERSISTENT);
2063-
REGISTER_LONG_CONSTANT("SNMP_VALUE_PLAIN", SNMP_VALUE_PLAIN, CONST_CS | CONST_PERSISTENT);
2064-
REGISTER_LONG_CONSTANT("SNMP_VALUE_OBJECT", SNMP_VALUE_OBJECT, CONST_CS | CONST_PERSISTENT);
2065-
2066-
REGISTER_LONG_CONSTANT("SNMP_BIT_STR", ASN_BIT_STR, CONST_CS | CONST_PERSISTENT);
2067-
REGISTER_LONG_CONSTANT("SNMP_OCTET_STR", ASN_OCTET_STR, CONST_CS | CONST_PERSISTENT);
2068-
REGISTER_LONG_CONSTANT("SNMP_OPAQUE", ASN_OPAQUE, CONST_CS | CONST_PERSISTENT);
2069-
REGISTER_LONG_CONSTANT("SNMP_NULL", ASN_NULL, CONST_CS | CONST_PERSISTENT);
2070-
REGISTER_LONG_CONSTANT("SNMP_OBJECT_ID", ASN_OBJECT_ID, CONST_CS | CONST_PERSISTENT);
2071-
REGISTER_LONG_CONSTANT("SNMP_IPADDRESS", ASN_IPADDRESS, CONST_CS | CONST_PERSISTENT);
2072-
REGISTER_LONG_CONSTANT("SNMP_COUNTER", ASN_GAUGE, CONST_CS | CONST_PERSISTENT);
2073-
REGISTER_LONG_CONSTANT("SNMP_UNSIGNED", ASN_UNSIGNED, CONST_CS | CONST_PERSISTENT);
2074-
REGISTER_LONG_CONSTANT("SNMP_TIMETICKS", ASN_TIMETICKS, CONST_CS | CONST_PERSISTENT);
2075-
REGISTER_LONG_CONSTANT("SNMP_UINTEGER", ASN_UINTEGER, CONST_CS | CONST_PERSISTENT);
2076-
REGISTER_LONG_CONSTANT("SNMP_INTEGER", ASN_INTEGER, CONST_CS | CONST_PERSISTENT);
2077-
REGISTER_LONG_CONSTANT("SNMP_COUNTER64", ASN_COUNTER64, CONST_CS | CONST_PERSISTENT);
2078-
2079-
REGISTER_SNMP_CLASS_CONST_LONG("VERSION_1", SNMP_VERSION_1);
2080-
REGISTER_SNMP_CLASS_CONST_LONG("VERSION_2c", SNMP_VERSION_2c);
2081-
REGISTER_SNMP_CLASS_CONST_LONG("VERSION_2C", SNMP_VERSION_2c);
2082-
REGISTER_SNMP_CLASS_CONST_LONG("VERSION_3", SNMP_VERSION_3);
2083-
2084-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_NOERROR", PHP_SNMP_ERRNO_NOERROR);
2085-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_ANY", PHP_SNMP_ERRNO_ANY);
2086-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_GENERIC", PHP_SNMP_ERRNO_GENERIC);
2087-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_TIMEOUT", PHP_SNMP_ERRNO_TIMEOUT);
2088-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_ERROR_IN_REPLY", PHP_SNMP_ERRNO_ERROR_IN_REPLY);
2089-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_OID_NOT_INCREASING", PHP_SNMP_ERRNO_OID_NOT_INCREASING);
2090-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_OID_PARSING_ERROR", PHP_SNMP_ERRNO_OID_PARSING_ERROR);
2091-
REGISTER_SNMP_CLASS_CONST_LONG("ERRNO_MULTIPLE_SET_QUERIES", PHP_SNMP_ERRNO_MULTIPLE_SET_QUERIES);
2092-
20932056
/* Register SNMPException class */
20942057
php_snmp_exception_ce = register_class_SNMPException(spl_ce_RuntimeException);
20952058

2059+
register_snmp_symbols(module_number);
2060+
20962061
return SUCCESS;
20972062
}
20982063
/* }}} */

ext/snmp/snmp.stub.php

+170
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,114 @@
22

33
/** @generate-class-entries */
44

5+
/**
6+
* @var int
7+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_SUFFIX)
8+
*/
9+
const SNMP_OID_OUTPUT_SUFFIX = UNKNOWN;
10+
/**
11+
* @var int
12+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_MODULE)
13+
*/
14+
const SNMP_OID_OUTPUT_MODULE = UNKNOWN;
15+
/**
16+
* @var int
17+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_FULL)
18+
*/
19+
const SNMP_OID_OUTPUT_FULL = UNKNOWN;
20+
/**
21+
* @var int
22+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_NUMERIC)
23+
*/
24+
const SNMP_OID_OUTPUT_NUMERIC = UNKNOWN;
25+
/**
26+
* @var int
27+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_UCD)
28+
*/
29+
const SNMP_OID_OUTPUT_UCD = UNKNOWN;
30+
/**
31+
* @var int
32+
* @cvalue LONG_CONST(NETSNMP_OID_OUTPUT_NONE)
33+
*/
34+
const SNMP_OID_OUTPUT_NONE = UNKNOWN;
35+
36+
/**
37+
* @var int
38+
* @cvalue LONG_CONST(SNMP_VALUE_LIBRARY)
39+
*/
40+
const SNMP_VALUE_LIBRARY = UNKNOWN;
41+
/**
42+
* @var int
43+
* @cvalue LONG_CONST(SNMP_VALUE_PLAIN)
44+
*/
45+
const SNMP_VALUE_PLAIN = UNKNOWN;
46+
/**
47+
* @var int
48+
* @cvalue LONG_CONST(SNMP_VALUE_OBJECT)
49+
*/
50+
const SNMP_VALUE_OBJECT = UNKNOWN;
51+
52+
/**
53+
* @var int
54+
* @cvalue LONG_CONST(ASN_BIT_STR)
55+
*/
56+
const SNMP_BIT_STR = UNKNOWN;
57+
/**
58+
* @var int
59+
* @cvalue LONG_CONST(ASN_OCTET_STRLONG_CONST)
60+
*/
61+
const SNMP_OCTET_STR = UNKNOWN;
62+
/**
63+
* @var int
64+
* @cvalue LONG_CONST(ASN_OPAQUE)
65+
*/
66+
const SNMP_OPAQUE = UNKNOWN;
67+
/**
68+
* @var int
69+
* @cvalue LONG_CONST(ASN_NULL)
70+
*/
71+
const SNMP_NULL = UNKNOWN;
72+
/**
73+
* @var int
74+
* @cvalue LONG_CONST(ASN_OBJECT_ID)
75+
*/
76+
const SNMP_OBJECT_ID = UNKNOWN;
77+
/**
78+
* @var int
79+
* @cvalue LONG_CONST(ASN_IPADDRESS)
80+
*/
81+
const SNMP_IPADDRESS = UNKNOWN;
82+
/**
83+
* @var int
84+
* @cvalue LONG_CONST(ASN_GAUGE)
85+
*/
86+
const SNMP_COUNTER = UNKNOWN;
87+
/**
88+
* @var int
89+
* @cvalue LONG_CONST(ASN_UNSIGNED)
90+
*/
91+
const SNMP_UNSIGNED = UNKNOWN;
92+
/**
93+
* @var int
94+
* @cvalue LONG_CONST(ASN_TIMETICKS)
95+
*/
96+
const SNMP_TIMETICKS = UNKNOWN;
97+
/**
98+
* @var int
99+
* @cvalue LONG_CONST(ASN_UINTEGER)
100+
*/
101+
const SNMP_UINTEGER = UNKNOWN;
102+
/**
103+
* @var int
104+
* @cvalue LONG_CONST(ASN_INTEGER)
105+
*/
106+
const SNMP_INTEGER = UNKNOWN;
107+
/**
108+
* @var int
109+
* @cvalue LONG_CONST(ASN_COUNTER64)
110+
*/
111+
const SNMP_COUNTER64 = UNKNOWN;
112+
5113
function snmpget(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
6114

7115
function snmpgetnext(string $hostname, string $community, array|string $object_id, int $timeout = -1, int $retries = -1): mixed {}
@@ -75,6 +183,68 @@ function snmp_read_mib(string $filename): bool {}
75183

76184
class SNMP
77185
{
186+
/**
187+
* @var int
188+
* @cvalue LONG_CONST(SNMP_VERSION_1)
189+
*/
190+
public const VERSION_1 = UNKNOWN;
191+
/**
192+
* @var int
193+
* @cvalue LONG_CONST(SNMP_VERSION_2c)
194+
*/
195+
public const VERSION_2c = UNKNOWN;
196+
/**
197+
* @var int
198+
* @cvalue LONG_CONST(SNMP_VERSION_2c)
199+
*/
200+
public const VERSION_2C = UNKNOWN;
201+
/**
202+
* @var int
203+
* @cvalue LONG_CONST(SNMP_VERSION_3)
204+
*/
205+
public const VERSION_3 = UNKNOWN;
206+
207+
/**
208+
* @var int
209+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_NOERROR)
210+
*/
211+
public const ERRNO_NOERROR = UNKNOWN;
212+
/**
213+
* @var int
214+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_ANY)
215+
*/
216+
public const ERRNO_ANY = UNKNOWN;
217+
/**
218+
* @var int
219+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_GENERIC)
220+
*/
221+
public const ERRNO_GENERIC = UNKNOWN;
222+
/**
223+
* @var int
224+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_TIMEOUT)
225+
*/
226+
public const ERRNO_TIMEOUT = UNKNOWN;
227+
/**
228+
* @var int
229+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_ERROR_IN_REPLY)
230+
*/
231+
public const ERRNO_ERROR_IN_REPLY = UNKNOWN;
232+
/**
233+
* @var int
234+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_OID_NOT_INCREASING)
235+
*/
236+
public const ERRNO_OID_NOT_INCREASING = UNKNOWN;
237+
/**
238+
* @var int
239+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_OID_PARSING_ERROR)
240+
*/
241+
public const ERRNO_OID_PARSING_ERROR = UNKNOWN;
242+
/**
243+
* @var int
244+
* @cvalue LONG_CONST(PHP_SNMP_ERRNO_MULTIPLE_SET_QUERIES)
245+
*/
246+
public const ERRNO_MULTIPLE_SET_QUERIES = UNKNOWN;
247+
78248
/** @readonly */
79249
public array $info;
80250
public ?int $max_oids;

ext/snmp/snmp_arginfo.h

+98-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)