Skip to content

Commit 570308b

Browse files
committed
Add option to set numeric index
1 parent 42a4511 commit 570308b

3 files changed

Lines changed: 28 additions & 1 deletion

File tree

ext/snmp/snmp.c

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1395,6 +1395,8 @@ static void php_snmp(INTERNAL_FUNCTION_PARAMETERS, int st, int version)
13951395
objid_query.valueretrieval = snmp_object->valueretrieval;
13961396
glob_snmp_object.enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM);
13971397
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, snmp_object->enum_print);
1398+
glob_snmp_object.numeric_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS);
1399+
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS, snmp_object->numeric_index);
13981400
glob_snmp_object.numeric_timeticks = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS);
13991401
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, snmp_object->numeric_timeticks);
14001402
glob_snmp_object.extended_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX);
@@ -1419,6 +1421,7 @@ static void php_snmp(INTERNAL_FUNCTION_PARAMETERS, int st, int version)
14191421
snmp_session_free(&session);
14201422
} else {
14211423
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, glob_snmp_object.enum_print);
1424+
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS, glob_snmp_object.numeric_index);
14221425
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, glob_snmp_object.numeric_timeticks);
14231426
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX, glob_snmp_object.extended_index);
14241427
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS, glob_snmp_object.dontprint_units);
@@ -1502,6 +1505,20 @@ PHP_FUNCTION(snmp_set_enum_print)
15021505
}
15031506
/* }}} */
15041507

1508+
/* {{{ Print table index numerically */
1509+
PHP_FUNCTION(snmp_set_numeric_index)
1510+
{
1511+
bool a1;
1512+
1513+
if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &a1) == FAILURE) {
1514+
RETURN_THROWS();
1515+
}
1516+
1517+
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS, (int) a1);
1518+
RETURN_TRUE;
1519+
}
1520+
/* }}} */
1521+
15051522
/* {{{ Print timetick values as integers */
15061523
PHP_FUNCTION(snmp_set_numeric_timeticks)
15071524
{
@@ -1739,6 +1756,7 @@ PHP_METHOD(SNMP, __construct)
17391756
snmp_object->max_oids = 0;
17401757
snmp_object->valueretrieval = SNMP_G(valueretrieval);
17411758
snmp_object->enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM);
1759+
snmp_object->numeric_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS);
17421760
snmp_object->numeric_timeticks = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS);
17431761
snmp_object->extended_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX);
17441762
snmp_object->dontprint_units = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS);
@@ -2056,6 +2074,7 @@ static int php_snmp_read_max_oids(php_snmp_object *snmp_object, zval *retval)
20562074
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(oid_increasing_check)
20572075
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(quick_print)
20582076
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(enum_print)
2077+
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(numeric_index)
20592078
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(numeric_timeticks)
20602079
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(extended_index)
20612080
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(dontprint_units)
@@ -2124,6 +2143,7 @@ static int php_snmp_write_##name(php_snmp_object *snmp_object, zval *newval) \
21242143

21252144
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(quick_print)
21262145
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(enum_print)
2146+
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(numeric_index)
21272147
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(numeric_timeticks)
21282148
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(extended_index)
21292149
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(dontprint_units)
@@ -2179,6 +2199,7 @@ const php_snmp_prop_handler php_snmp_property_entries[] = {
21792199
PHP_SNMP_PROPERTY_ENTRY_RECORD(valueretrieval),
21802200
PHP_SNMP_PROPERTY_ENTRY_RECORD(quick_print),
21812201
PHP_SNMP_PROPERTY_ENTRY_RECORD(enum_print),
2202+
PHP_SNMP_PROPERTY_ENTRY_RECORD(numeric_index),
21822203
PHP_SNMP_PROPERTY_ENTRY_RECORD(numeric_timeticks),
21832204
PHP_SNMP_PROPERTY_ENTRY_RECORD(extended_index),
21842205
PHP_SNMP_PROPERTY_ENTRY_RECORD(dontprint_units),

ext/snmp/snmp.stub.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,8 @@ function snmp_set_quick_print(bool $enable): true {}
129129

130130
function snmp_set_enum_print(bool $enable): true {}
131131

132+
function snmp_set_numeric_index(bool $enable): true {}
133+
132134
function snmp_set_numeric_timeticks(bool $enable): true {}
133135

134136
function snmp_set_extended_index(bool $enable): true {}

ext/snmp/snmp_arginfo.h

Lines changed: 5 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)