Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions ext/snmp/php_snmp.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,9 @@ typedef struct _php_snmp_object {
int valueretrieval;
int quick_print;
int enum_print;
int numeric_timeticks;
int extended_index;
int dontprint_units;
int oid_output_format;
int snmp_errno;
int oid_increasing_check;
Expand Down
77 changes: 77 additions & 0 deletions ext/snmp/snmp.c
Original file line number Diff line number Diff line change
Expand Up @@ -1395,6 +1395,12 @@ static void php_snmp(INTERNAL_FUNCTION_PARAMETERS, int st, int version)
objid_query.valueretrieval = snmp_object->valueretrieval;
glob_snmp_object.enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, snmp_object->enum_print);
glob_snmp_object.numeric_timeticks = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, snmp_object->numeric_timeticks);
glob_snmp_object.extended_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX, snmp_object->extended_index);
glob_snmp_object.dontprint_units = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS, snmp_object->dontprint_units);
glob_snmp_object.quick_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, snmp_object->quick_print);
glob_snmp_object.oid_output_format = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT);
Expand All @@ -1413,6 +1419,9 @@ static void php_snmp(INTERNAL_FUNCTION_PARAMETERS, int st, int version)
snmp_session_free(&session);
} else {
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM, glob_snmp_object.enum_print);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, glob_snmp_object.numeric_timeticks);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX, glob_snmp_object.extended_index);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS, glob_snmp_object.dontprint_units);
netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT, glob_snmp_object.quick_print);
netsnmp_ds_set_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT, glob_snmp_object.oid_output_format);
}
Expand Down Expand Up @@ -1493,6 +1502,48 @@ PHP_FUNCTION(snmp_set_enum_print)
}
/* }}} */

/* {{{ Print timetick values as integers */
PHP_FUNCTION(snmp_set_numeric_timeticks)
{
bool a1;

if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &a1) == FAILURE) {
RETURN_THROWS();
}

netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS, (int) a1);
RETURN_TRUE;
Comment thread
eskyuu marked this conversation as resolved.
Outdated
}
/* }}} */

/* {{{ Use extended table format when printing tables */
PHP_FUNCTION(snmp_set_extended_index)
{
bool a1;

if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &a1) == FAILURE) {
RETURN_THROWS();
}

netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX, (int) a1);
RETURN_TRUE;
}
/* }}} */

/* {{{ Use extended table format */
PHP_FUNCTION(snmp_set_dontprint_units)
{
bool a1;

if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &a1) == FAILURE) {
RETURN_THROWS();
}

netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS, (int) a1);
RETURN_TRUE;
}
/* }}} */

/* {{{ Set the OID output format. */
PHP_FUNCTION(snmp_set_oid_output_format)
{
Expand Down Expand Up @@ -1618,6 +1669,20 @@ PHP_FUNCTION(snmp_get_valueretrieval)
}
/* }}} */

/* {{{ Allow underscores in MIBs. */
PHP_FUNCTION(snmp_mib_allow_underscores)
{
bool a1;

if (zend_parse_parameters(ZEND_NUM_ARGS(), "b", &a1) == FAILURE) {
RETURN_THROWS();
}

netsnmp_ds_set_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_MIB_PARSE_LABEL, (int) a1);
RETURN_TRUE;
}
/* }}} */

/* {{{ Reads and parses a MIB file into the active MIB tree. */
PHP_FUNCTION(snmp_read_mib)
{
Expand Down Expand Up @@ -1674,6 +1739,9 @@ PHP_METHOD(SNMP, __construct)
snmp_object->max_oids = 0;
snmp_object->valueretrieval = SNMP_G(valueretrieval);
snmp_object->enum_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM);
snmp_object->numeric_timeticks = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_NUMERIC_TIMETICKS);
snmp_object->extended_index = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_EXTENDED_INDEX);
snmp_object->dontprint_units = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_DONT_PRINT_UNITS);
snmp_object->oid_output_format = netsnmp_ds_get_int(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_OID_OUTPUT_FORMAT);
snmp_object->quick_print = netsnmp_ds_get_boolean(NETSNMP_DS_LIBRARY_ID, NETSNMP_DS_LIB_QUICK_PRINT);
snmp_object->oid_increasing_check = true;
Expand Down Expand Up @@ -1988,6 +2056,9 @@ static int php_snmp_read_max_oids(php_snmp_object *snmp_object, zval *retval)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(oid_increasing_check)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(quick_print)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(enum_print)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(numeric_timeticks)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(extended_index)
PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(dontprint_units)

#define PHP_SNMP_LONG_PROPERTY_READER_FUNCTION(name) \
static int php_snmp_read_##name(php_snmp_object *snmp_object, zval *retval) \
Expand Down Expand Up @@ -2053,6 +2124,9 @@ static int php_snmp_write_##name(php_snmp_object *snmp_object, zval *newval) \

PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(quick_print)
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(enum_print)
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(numeric_timeticks)
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(extended_index)
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(dontprint_units)
PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION(oid_increasing_check)

/* {{{ */
Expand Down Expand Up @@ -2105,6 +2179,9 @@ const php_snmp_prop_handler php_snmp_property_entries[] = {
PHP_SNMP_PROPERTY_ENTRY_RECORD(valueretrieval),
PHP_SNMP_PROPERTY_ENTRY_RECORD(quick_print),
PHP_SNMP_PROPERTY_ENTRY_RECORD(enum_print),
PHP_SNMP_PROPERTY_ENTRY_RECORD(numeric_timeticks),
PHP_SNMP_PROPERTY_ENTRY_RECORD(extended_index),
PHP_SNMP_PROPERTY_ENTRY_RECORD(dontprint_units),
PHP_SNMP_PROPERTY_ENTRY_RECORD(oid_output_format),
PHP_SNMP_PROPERTY_ENTRY_RECORD(oid_increasing_check),
PHP_SNMP_PROPERTY_ENTRY_RECORD(exceptions_enabled),
Expand Down
11 changes: 11 additions & 0 deletions ext/snmp/snmp.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,12 @@ function snmp_set_quick_print(bool $enable): true {}

function snmp_set_enum_print(bool $enable): true {}

function snmp_set_numeric_timeticks(bool $enable): true {}

function snmp_set_extended_index(bool $enable): true {}

function snmp_set_dontprint_units(bool $enable): true {}

function snmp_set_oid_output_format(int $format): true {}

/** @alias snmp_set_oid_output_format */
Expand Down Expand Up @@ -179,6 +185,8 @@ function snmp_set_valueretrieval(int $method): true {}

function snmp_get_valueretrieval(): int {}

function snmp_mib_allow_underscores(bool $enable): true {}

function snmp_read_mib(string $filename): bool {}

class SNMP
Expand Down Expand Up @@ -215,6 +223,9 @@ class SNMP
public int $valueretrieval;
public bool $quick_print;
public bool $enum_print;
public bool $numeric_timeticks;
public bool $extended_index;
public bool $dontprint_units;
public int $oid_output_format;
public bool $oid_increasing_check;
public int $exceptions_enabled;
Expand Down
36 changes: 35 additions & 1 deletion ext/snmp/snmp_arginfo.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions ext/snmp/tests/snmp-object-properties.phpt
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,12 @@ object(SNMP)#%d (%d) {
bool(false)
["enum_print"]=>
bool(false)
["numeric_timeticks"]=>
bool(false)
["extended_index"]=>
bool(false)
["dontprint_units"]=>
bool(false)
["oid_output_format"]=>
int(3)
["oid_increasing_check"]=>
Expand All @@ -123,6 +129,12 @@ object(SNMP)#%d (%d) {
bool(true)
["enum_print"]=>
bool(true)
["numeric_timeticks"]=>
bool(false)
["extended_index"]=>
bool(false)
["dontprint_units"]=>
bool(false)
["oid_output_format"]=>
int(4)
["oid_increasing_check"]=>
Expand All @@ -148,6 +160,12 @@ object(SNMP)#%d (%d) {
bool(true)
["enum_print"]=>
bool(true)
["numeric_timeticks"]=>
bool(false)
["extended_index"]=>
bool(false)
["dontprint_units"]=>
bool(false)
["oid_output_format"]=>
int(3)
["oid_increasing_check"]=>
Expand Down Expand Up @@ -178,6 +196,12 @@ object(SNMP)#%d (%d) {
bool(true)
["enum_print"]=>
bool(true)
["numeric_timeticks"]=>
bool(false)
["extended_index"]=>
bool(false)
["dontprint_units"]=>
bool(false)
["oid_output_format"]=>
int(3)
["oid_increasing_check"]=>
Expand Down
Loading