@@ -1229,7 +1229,7 @@ static ZEND_ATTRIBUTE_NONNULL_ARGS(2) bool snmp_session_set_security(struct snmp
12291229*/
12301230static void save_snmplib_output_options (php_snmp_object * snmp_object )
12311231{
1232- // Booleans
1232+ // Booleans
12331233 snmp_object -> quick_print = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_QUICK_PRINT );
12341234 snmp_object -> enum_print = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM );
12351235 snmp_object -> numeric_index = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS );
@@ -1248,7 +1248,7 @@ static void save_snmplib_output_options(php_snmp_object *snmp_object)
12481248*/
12491249static void set_snmplib_output_options (php_snmp_object * snmp_object )
12501250{
1251- // Booleans
1251+ // Booleans
12521252 netsnmp_ds_set_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_QUICK_PRINT , snmp_object -> quick_print );
12531253 netsnmp_ds_set_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM , snmp_object -> enum_print );
12541254 netsnmp_ds_set_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS , snmp_object -> numeric_index );
@@ -1449,7 +1449,7 @@ static void php_snmp(INTERNAL_FUNCTION_PARAMETERS, int st, int version)
14491449 snmp_session_free (& session );
14501450 } else {
14511451 // Restore the snmplib output options back to the global state
1452- set_snmplib_output_options (& glob_snmp_object );
1452+ set_snmplib_output_options (& glob_snmp_object );
14531453 }
14541454}
14551455/* }}} */
@@ -1780,13 +1780,7 @@ PHP_METHOD(SNMP, __construct)
17801780 }
17811781 snmp_object -> max_oids = 0 ;
17821782 snmp_object -> valueretrieval = SNMP_G (valueretrieval );
1783- snmp_object -> enum_print = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_PRINT_NUMERIC_ENUM );
1784- snmp_object -> numeric_index = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_DONT_BREAKDOWN_OIDS );
1785- snmp_object -> numeric_timeticks = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_NUMERIC_TIMETICKS );
1786- snmp_object -> extended_index = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_EXTENDED_INDEX );
1787- snmp_object -> dontprint_units = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_DONT_PRINT_UNITS );
1788- snmp_object -> oid_output_format = netsnmp_ds_get_int (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_OID_OUTPUT_FORMAT );
1789- snmp_object -> quick_print = netsnmp_ds_get_boolean (NETSNMP_DS_LIBRARY_ID , NETSNMP_DS_LIB_QUICK_PRINT );
1783+ save_snmplib_output_options (snmp_object );
17901784 snmp_object -> oid_increasing_check = true;
17911785 snmp_object -> exceptions_enabled = 0 ;
17921786}
@@ -2103,6 +2097,8 @@ PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(numeric_index)
21032097PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION (numeric_timeticks )
21042098PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION (extended_index )
21052099PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION (dontprint_units )
2100+ PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION (escape_quotes )
2101+ PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION (print_hex_text )
21062102
21072103#define PHP_SNMP_LONG_PROPERTY_READER_FUNCTION (name ) \
21082104 static int php_snmp_read_ ##name (php_snmp_object *snmp_object, zval *retval) \
@@ -2112,6 +2108,7 @@ PHP_SNMP_BOOL_PROPERTY_READER_FUNCTION(dontprint_units)
21122108 }
21132109
21142110PHP_SNMP_LONG_PROPERTY_READER_FUNCTION (valueretrieval )
2111+ PHP_SNMP_LONG_PROPERTY_READER_FUNCTION (string_output_format )
21152112PHP_SNMP_LONG_PROPERTY_READER_FUNCTION (oid_output_format )
21162113PHP_SNMP_LONG_PROPERTY_READER_FUNCTION (exceptions_enabled )
21172114
@@ -2166,13 +2163,33 @@ static int php_snmp_write_##name(php_snmp_object *snmp_object, zval *newval) \
21662163 return SUCCESS; \
21672164}
21682165
2166+ PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (oid_increasing_check )
21692167PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (quick_print )
21702168PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (enum_print )
21712169PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (numeric_index )
21722170PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (numeric_timeticks )
21732171PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (extended_index )
21742172PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (dontprint_units )
2175- PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (oid_increasing_check )
2173+ PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (escape_quotes )
2174+ PHP_SNMP_BOOL_PROPERTY_WRITER_FUNCTION (print_hex_text )
2175+
2176+ /* {{{ */
2177+ static int php_snmp_write_string_output_format (php_snmp_object * snmp_object , zval * newval )
2178+ {
2179+ zend_long lval = zval_get_long (newval );
2180+
2181+ switch (lval ) {
2182+ case NETSNMP_STRING_OUTPUT_GUESS :
2183+ case NETSNMP_STRING_OUTPUT_ASCII :
2184+ case NETSNMP_STRING_OUTPUT_HEX :
2185+ snmp_object -> oid_output_format = lval ;
2186+ return SUCCESS ;
2187+ default :
2188+ zend_value_error ("SNMP string output print format must be an SNMP_STRING_OUTPUT_* constant" );
2189+ return FAILURE ;
2190+ }
2191+ }
2192+ /* }}} */
21762193
21772194/* {{{ */
21782195static int php_snmp_write_oid_output_format (php_snmp_object * snmp_object , zval * newval )
@@ -2221,15 +2238,18 @@ static void free_php_snmp_properties(zval *el) /* {{{ */
22212238const php_snmp_prop_handler php_snmp_property_entries [] = {
22222239 PHP_SNMP_READONLY_PROPERTY_ENTRY_RECORD (info ),
22232240 PHP_SNMP_PROPERTY_ENTRY_RECORD (max_oids ),
2224- PHP_SNMP_PROPERTY_ENTRY_RECORD (valueretrieval ),
2241+ PHP_SNMP_PROPERTY_ENTRY_RECORD (oid_increasing_check ),
22252242 PHP_SNMP_PROPERTY_ENTRY_RECORD (quick_print ),
22262243 PHP_SNMP_PROPERTY_ENTRY_RECORD (enum_print ),
22272244 PHP_SNMP_PROPERTY_ENTRY_RECORD (numeric_index ),
22282245 PHP_SNMP_PROPERTY_ENTRY_RECORD (numeric_timeticks ),
22292246 PHP_SNMP_PROPERTY_ENTRY_RECORD (extended_index ),
22302247 PHP_SNMP_PROPERTY_ENTRY_RECORD (dontprint_units ),
2248+ PHP_SNMP_PROPERTY_ENTRY_RECORD (escape_quotes ),
2249+ PHP_SNMP_PROPERTY_ENTRY_RECORD (print_hex_text ),
2250+ PHP_SNMP_PROPERTY_ENTRY_RECORD (valueretrieval ),
2251+ PHP_SNMP_PROPERTY_ENTRY_RECORD (string_output_format ),
22312252 PHP_SNMP_PROPERTY_ENTRY_RECORD (oid_output_format ),
2232- PHP_SNMP_PROPERTY_ENTRY_RECORD (oid_increasing_check ),
22332253 PHP_SNMP_PROPERTY_ENTRY_RECORD (exceptions_enabled ),
22342254 { NULL , 0 , NULL , NULL }
22352255};
0 commit comments