summaryrefslogtreecommitdiff
path: root/ext/snmp/php_snmp.h
diff options
context:
space:
mode:
authorLorry Tar Creator <lorry-tar-importer@baserock.org>2013-03-14 05:42:27 +0000
committer <>2013-04-03 16:25:08 +0000
commitc4dd7a1a684490673e25aaf4fabec5df138854c4 (patch)
tree4d57c44caae4480efff02b90b9be86f44bf25409 /ext/snmp/php_snmp.h
downloadphp2-master.tar.gz
Imported from /home/lorry/working-area/delta_php2/php-5.4.13.tar.bz2.HEADphp-5.4.13master
Diffstat (limited to 'ext/snmp/php_snmp.h')
-rw-r--r--ext/snmp/php_snmp.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/ext/snmp/php_snmp.h b/ext/snmp/php_snmp.h
new file mode 100644
index 0000000..a9e7eb3
--- /dev/null
+++ b/ext/snmp/php_snmp.h
@@ -0,0 +1,141 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2013 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Rasmus Lerdorf <rasmus@php.net> |
+ | Mike Jackson <mhjack@tscnet.com> |
+ | Steven Lawrance <slawrance@technologist.com> |
+ | Harrie Hazewinkel <harrie@lisanza.net> |
+ | Johann Hanne <jonny@nurfuerspam.de> |
+ | Boris Lytockin <lytboris@gmail.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id$ */
+
+#ifndef PHP_SNMP_H
+#define PHP_SNMP_H
+
+#define PHP_SNMP_VERSION "0.1"
+
+#if HAVE_SNMP
+
+#ifndef DLEXPORT
+#define DLEXPORT
+#endif
+
+extern zend_module_entry snmp_module_entry;
+#define snmp_module_ptr &snmp_module_entry
+
+#ifdef ZTS
+#include "TSRM.h"
+#endif
+
+#include <net-snmp/net-snmp-config.h>
+#include <net-snmp/net-snmp-includes.h>
+
+PHP_MINIT_FUNCTION(snmp);
+PHP_MSHUTDOWN_FUNCTION(snmp);
+PHP_MINFO_FUNCTION(snmp);
+
+PHP_FUNCTION(snmpget);
+PHP_FUNCTION(snmpgetnext);
+PHP_FUNCTION(snmpwalk);
+PHP_FUNCTION(snmprealwalk);
+PHP_FUNCTION(snmpset);
+PHP_FUNCTION(snmp_get_quick_print);
+PHP_FUNCTION(snmp_set_quick_print);
+PHP_FUNCTION(snmp_set_enum_print);
+PHP_FUNCTION(snmp_set_oid_output_format);
+
+PHP_FUNCTION(snmp2_get);
+PHP_FUNCTION(snmp2_getnext);
+PHP_FUNCTION(snmp2_walk);
+PHP_FUNCTION(snmp2_real_walk);
+PHP_FUNCTION(snmp2_set);
+
+PHP_FUNCTION(snmp3_get);
+PHP_FUNCTION(snmp3_getnext);
+PHP_FUNCTION(snmp3_walk);
+PHP_FUNCTION(snmp3_real_walk);
+PHP_FUNCTION(snmp3_set);
+
+PHP_FUNCTION(snmp_set_valueretrieval);
+PHP_FUNCTION(snmp_get_valueretrieval);
+
+PHP_FUNCTION(snmp_read_mib);
+
+PHP_METHOD(SNMP, setSecurity);
+PHP_METHOD(SNMP, close);
+PHP_METHOD(SNMP, get);
+PHP_METHOD(SNMP, getnext);
+PHP_METHOD(SNMP, walk);
+PHP_METHOD(SNMP, set);
+PHP_METHOD(SNMP, getErrno);
+PHP_METHOD(SNMP, getError);
+
+typedef struct _php_snmp_object {
+ zend_object zo;
+ struct snmp_session *session;
+ int max_oids;
+ int valueretrieval;
+ int quick_print;
+ int enum_print;
+ int oid_output_format;
+ int snmp_errno;
+ int oid_increasing_check;
+ int exceptions_enabled;
+ char snmp_errstr[256];
+} php_snmp_object;
+
+
+typedef int (*php_snmp_read_t)(php_snmp_object *snmp_object, zval **retval TSRMLS_DC);
+typedef int (*php_snmp_write_t)(php_snmp_object *snmp_object, zval *newval TSRMLS_DC);
+
+typedef struct _ptp_snmp_prop_handler {
+ const char *name;
+ size_t name_length;
+ php_snmp_read_t read_func;
+ php_snmp_write_t write_func;
+} php_snmp_prop_handler;
+
+typedef struct _snmpobjarg {
+ char *oid;
+ char type;
+ char *value;
+ oid name[MAX_OID_LEN];
+ size_t name_length;
+} snmpobjarg;
+
+ZEND_BEGIN_MODULE_GLOBALS(snmp)
+ int valueretrieval;
+ZEND_END_MODULE_GLOBALS(snmp)
+
+#ifdef ZTS
+#define SNMP_G(v) TSRMG(snmp_globals_id, zend_snmp_globals *, v)
+#else
+#define SNMP_G(v) (snmp_globals.v)
+#endif
+
+#define REGISTER_SNMP_CLASS_CONST_LONG(const_name, value) \
+ zend_declare_class_constant_long(php_snmp_ce, const_name, sizeof(const_name)-1, (long)value TSRMLS_CC);
+
+#else
+
+#define snmp_module_ptr NULL
+
+#endif /* HAVE_SNMP */
+
+#define phpext_snmp_ptr snmp_module_ptr
+
+#endif /* PHP_SNMP_H */