From 03e92d4d48c6ef313d209a746a380282d8c34cdc Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Sat, 28 Sep 2019 15:33:27 +0200 Subject: [PATCH] Add ext/snmp arginfo stubs --- ext/snmp/snmp.c | 248 ++------------------------------- ext/snmp/snmp.stub.php | 162 +++++++++++++++++++++ ext/snmp/snmp_arginfo.h | 146 +++++++++++++++++++ ext/snmp/tests/reflection.phpt | 35 +++-- 4 files changed, 338 insertions(+), 253 deletions(-) create mode 100644 ext/snmp/snmp.stub.php create mode 100644 ext/snmp/snmp_arginfo.h diff --git a/ext/snmp/snmp.c b/ext/snmp/snmp.c index 8790f214a9..95c6e210c7 100644 --- a/ext/snmp/snmp.c +++ b/ext/snmp/snmp.c @@ -30,6 +30,7 @@ #include "zend_exceptions.h" #include "ext/spl/spl_exceptions.h" +#include "snmp_arginfo.h" #if HAVE_SNMP @@ -123,229 +124,6 @@ zend_class_entry *php_snmp_exception_ce; /* Class object properties */ static HashTable php_snmp_properties; -/* {{{ arginfo */ - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmpget, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmpgetnext, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmpwalk, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmprealwalk, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmpset, 0, 0, 5) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, type) - ZEND_ARG_INFO(0, value) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_get_quick_print, 0, 0, 1) - ZEND_ARG_INFO(0, d) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_quick_print, 0, 0, 1) - ZEND_ARG_INFO(0, quick_print) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_enum_print, 0, 0, 1) - ZEND_ARG_INFO(0, enum_print) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_oid_output_format, 0, 0, 1) - ZEND_ARG_INFO(0, oid_format) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_get, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_getnext, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_walk, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_real_walk, 0, 0, 3) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp2_set, 0, 0, 5) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, type) - ZEND_ARG_INFO(0, value) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp3_get, 0, 0, 8) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, sec_name) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp3_getnext, 0, 0, 8) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, sec_name) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp3_walk, 0, 0, 8) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, sec_name) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp3_real_walk, 0, 0, 8) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, sec_name) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp3_set, 0, 0, 10) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, sec_name) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, type) - ZEND_ARG_INFO(0, value) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set_valueretrieval, 0, 0, 1) - ZEND_ARG_INFO(0, method) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_snmp_get_valueretrieval, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_read_mib, 0, 0, 1) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -/* OO arginfo */ - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_create, 0, 0, 3) - ZEND_ARG_INFO(0, version) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, community) - ZEND_ARG_INFO(0, timeout) - ZEND_ARG_INFO(0, retries) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_snmp_void, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_setSecurity, 0, 0, 8) - ZEND_ARG_INFO(0, sec_level) - ZEND_ARG_INFO(0, auth_protocol) - ZEND_ARG_INFO(0, auth_passphrase) - ZEND_ARG_INFO(0, priv_protocol) - ZEND_ARG_INFO(0, priv_passphrase) - ZEND_ARG_INFO(0, contextName) - ZEND_ARG_INFO(0, contextEngineID) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_get, 0, 0, 1) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, use_orignames) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_walk, 0, 0, 4) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, suffix_keys) - ZEND_ARG_INFO(0, max_repetitions) - ZEND_ARG_INFO(0, non_repeaters) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_snmp_set, 0, 0, 3) - ZEND_ARG_INFO(0, object_id) - ZEND_ARG_INFO(0, type) - ZEND_ARG_INFO(0, value) -ZEND_END_ARG_INFO() -/* }}} */ - struct objid_query { int count; int offset; @@ -365,13 +143,13 @@ static const zend_function_entry snmp_functions[] = { PHP_FE(snmpgetnext, arginfo_snmpgetnext) PHP_FE(snmpwalk, arginfo_snmpwalk) PHP_FE(snmprealwalk, arginfo_snmprealwalk) - PHP_FALIAS(snmpwalkoid, snmprealwalk, arginfo_snmprealwalk) + PHP_FALIAS(snmpwalkoid, snmprealwalk, arginfo_snmpwalkoid) PHP_FE(snmpset, arginfo_snmpset) PHP_FE(snmp_get_quick_print, arginfo_snmp_get_quick_print) PHP_FE(snmp_set_quick_print, arginfo_snmp_set_quick_print) PHP_FE(snmp_set_enum_print, arginfo_snmp_set_enum_print) PHP_FE(snmp_set_oid_output_format, arginfo_snmp_set_oid_output_format) - PHP_FALIAS(snmp_set_oid_numeric_print, snmp_set_oid_output_format, arginfo_snmp_set_oid_output_format) + PHP_FALIAS(snmp_set_oid_numeric_print, snmp_set_oid_output_format, arginfo_snmp_set_oid_numeric_print) PHP_FE(snmp2_get, arginfo_snmp2_get) PHP_FE(snmp2_getnext, arginfo_snmp2_getnext) @@ -2203,16 +1981,16 @@ static void free_php_snmp_properties(zval *el) /* {{{ */ /* {{{ php_snmp_class_methods[] */ static const zend_function_entry php_snmp_class_methods[] = { - PHP_ME(snmp, __construct, arginfo_snmp_create, ZEND_ACC_PUBLIC) - PHP_ME(snmp, close, arginfo_snmp_void, ZEND_ACC_PUBLIC) - PHP_ME(snmp, setSecurity, arginfo_snmp_setSecurity, ZEND_ACC_PUBLIC) - - PHP_ME(snmp, get, arginfo_snmp_get, ZEND_ACC_PUBLIC) - PHP_ME(snmp, getnext, arginfo_snmp_get, ZEND_ACC_PUBLIC) - PHP_ME(snmp, walk, arginfo_snmp_walk, ZEND_ACC_PUBLIC) - PHP_ME(snmp, set, arginfo_snmp_set, ZEND_ACC_PUBLIC) - PHP_ME(snmp, getErrno, arginfo_snmp_void, ZEND_ACC_PUBLIC) - PHP_ME(snmp, getError, arginfo_snmp_void, ZEND_ACC_PUBLIC) + PHP_ME(snmp, __construct, arginfo_class_SNMP___construct, ZEND_ACC_PUBLIC) + PHP_ME(snmp, close, arginfo_class_SNMP_close, ZEND_ACC_PUBLIC) + PHP_ME(snmp, setSecurity, arginfo_class_SNMP_setSecurity, ZEND_ACC_PUBLIC) + + PHP_ME(snmp, get, arginfo_class_SNMP_get, ZEND_ACC_PUBLIC) + PHP_ME(snmp, getnext, arginfo_class_SNMP_getnext, ZEND_ACC_PUBLIC) + PHP_ME(snmp, walk, arginfo_class_SNMP_walk, ZEND_ACC_PUBLIC) + PHP_ME(snmp, set, arginfo_class_SNMP_set, ZEND_ACC_PUBLIC) + PHP_ME(snmp, getErrno, arginfo_class_SNMP_getErrno, ZEND_ACC_PUBLIC) + PHP_ME(snmp, getError, arginfo_class_SNMP_getError, ZEND_ACC_PUBLIC) PHP_FE_END }; diff --git a/ext/snmp/snmp.stub.php b/ext/snmp/snmp.stub.php new file mode 100644 index 0000000000..903ec81570 --- /dev/null +++ b/ext/snmp/snmp.stub.php @@ -0,0 +1,162 @@ + public method __construct ] { - Parameters [5] { - Parameter #0 [ $version ] - Parameter #1 [ $host ] - Parameter #2 [ $community ] - Parameter #3 [ $timeout ] - Parameter #4 [ $retries ] + Parameter #0 [ int $version ] + Parameter #1 [ string $host ] + Parameter #2 [ string $community ] + Parameter #3 [ int $timeout ] + Parameter #4 [ int $retries ] } } Method [ public method close ] { @@ -40,36 +40,35 @@ Method [ public method close ] { Method [ public method setSecurity ] { - Parameters [7] { - Parameter #0 [ $sec_level ] - Parameter #1 [ $auth_protocol ] - Parameter #2 [ $auth_passphrase ] - Parameter #3 [ $priv_protocol ] - Parameter #4 [ $priv_passphrase ] - Parameter #5 [ $contextName ] - Parameter #6 [ $contextEngineID ] + Parameter #0 [ string $sec_level ] + Parameter #1 [ string $auth_protocol ] + Parameter #2 [ string $auth_passphrase ] + Parameter #3 [ string $priv_protocol ] + Parameter #4 [ string $priv_passphrase ] + Parameter #5 [ string $contextName ] + Parameter #6 [ string $contextEngineID ] } } Method [ public method get ] { - Parameters [2] { Parameter #0 [ $object_id ] - Parameter #1 [ $use_orignames ] + Parameter #1 [ bool $use_orignames ] } } Method [ public method getnext ] { - - Parameters [2] { + - Parameters [1] { Parameter #0 [ $object_id ] - Parameter #1 [ $use_orignames ] } } Method [ public method walk ] { - Parameters [4] { Parameter #0 [ $object_id ] - Parameter #1 [ $suffix_keys ] - Parameter #2 [ $max_repetitions ] - Parameter #3 [ $non_repeaters ] + Parameter #1 [ bool $suffix_keys ] + Parameter #2 [ int $max_repetitions ] + Parameter #3 [ int $non_repeaters ] } } Method [ public method set ] { -- 2.50.0