summaryrefslogtreecommitdiff
path: root/include/net-snmp/library/snmp_client.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net-snmp/library/snmp_client.h')
-rw-r--r--include/net-snmp/library/snmp_client.h167
1 files changed, 167 insertions, 0 deletions
diff --git a/include/net-snmp/library/snmp_client.h b/include/net-snmp/library/snmp_client.h
new file mode 100644
index 0000000..ea54e7d
--- /dev/null
+++ b/include/net-snmp/library/snmp_client.h
@@ -0,0 +1,167 @@
+/*
+ * snmp_client.h
+ */
+/***********************************************************
+ Copyright 1988, 1989 by Carnegie Mellon University
+
+ All Rights Reserved
+
+Permission to use, copy, modify, and distribute this software and its
+documentation for any purpose and without fee is hereby granted,
+provided that the above copyright notice appear in all copies and that
+both that copyright notice and this permission notice appear in
+supporting documentation, and that the name of CMU not be
+used in advertising or publicity pertaining to distribution of the
+software without specific, written prior permission.
+
+CMU DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
+CMU BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
+ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
+WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+SOFTWARE.
+******************************************************************/
+
+#ifndef SNMP_CLIENT_H
+#define SNMP_CLIENT_H
+
+#include <net-snmp/types.h>
+#include <net-snmp/varbind_api.h>
+#include <net-snmp/pdu_api.h>
+#include <net-snmp/output_api.h>
+#include <net-snmp/session_api.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+ struct snmp_pdu;
+ struct snmp_session;
+ struct variable_list;
+
+ struct synch_state {
+ int waiting;
+ int status;
+ /*
+ * status codes
+ */
+#define STAT_SUCCESS 0
+#define STAT_ERROR 1
+#define STAT_TIMEOUT 2
+ int reqid;
+ netsnmp_pdu *pdu;
+ };
+
+ NETSNMP_IMPORT
+ void snmp_replace_var_types(netsnmp_variable_list * vbl,
+ u_char old_type,
+ u_char new_type);
+ NETSNMP_IMPORT
+ void snmp_reset_var_buffers(netsnmp_variable_list * var);
+ void snmp_reset_var_types(netsnmp_variable_list * vbl,
+ u_char new_type);
+ NETSNMP_IMPORT
+ int count_varbinds(netsnmp_variable_list * var_ptr);
+ NETSNMP_IMPORT
+ int count_varbinds_of_type(netsnmp_variable_list * var_ptr,
+ u_char type);
+ netsnmp_variable_list *find_varbind_of_type(netsnmp_variable_list *
+ var_ptr, u_char type);
+ NETSNMP_IMPORT
+ netsnmp_variable_list *find_varbind_in_list(netsnmp_variable_list *vblist,
+ const oid *name, size_t len);
+
+ netsnmp_pdu *snmp_split_pdu(netsnmp_pdu *, int skipCount,
+ int copyCount);
+
+ unsigned long snmp_varbind_len(netsnmp_pdu *pdu);
+ NETSNMP_IMPORT
+ int snmp_clone_var(netsnmp_variable_list *,
+ netsnmp_variable_list *);
+ NETSNMP_IMPORT
+ int snmp_synch_response_cb(netsnmp_session *,
+ netsnmp_pdu *, netsnmp_pdu **,
+ snmp_callback);
+ NETSNMP_IMPORT
+ int snmp_clone_mem(void **, const void *, unsigned);
+
+
+NETSNMP_IMPORT
+void netsnmp_query_set_default_session(netsnmp_session *);
+NETSNMP_IMPORT
+netsnmp_session * netsnmp_query_get_default_session_unchecked( void );
+NETSNMP_IMPORT
+netsnmp_session * netsnmp_query_get_default_session( void );
+NETSNMP_IMPORT
+int netsnmp_query_get( netsnmp_variable_list *, netsnmp_session *);
+NETSNMP_IMPORT
+int netsnmp_query_getnext( netsnmp_variable_list *, netsnmp_session *);
+NETSNMP_IMPORT
+int netsnmp_query_walk( netsnmp_variable_list *, netsnmp_session *);
+#ifndef NETSNMP_NO_WRITE_SUPPORT
+NETSNMP_IMPORT
+int netsnmp_query_set( netsnmp_variable_list *, netsnmp_session *);
+#endif /* !NETSNMP_NO_WRITE_SUPPORT */
+
+/** **************************************************************************
+ *
+ * state machine
+ *
+ */
+ /** forward declare */
+ struct netsnmp_state_machine_step_s;
+ struct netsnmp_state_machine_input_s;
+
+ /** state machine process */
+ typedef int (netsnmp_state_machine_func)(struct netsnmp_state_machine_input_s *input,
+ struct netsnmp_state_machine_step_s *step);
+
+ typedef struct netsnmp_state_machine_step_s {
+
+ const char *name; /* primarily for logging/debugging */
+ u_int sm_flags;
+
+ netsnmp_state_machine_func *run;
+ int result; /* return code for this step */
+
+
+ struct netsnmp_state_machine_step_s *on_success;
+ struct netsnmp_state_machine_step_s *on_error;
+
+ /*
+ * user fields (not touched by state machine functions)
+ */
+ u_int flags;
+ void *step_context;
+
+ } netsnmp_state_machine_step;
+
+ typedef struct netsnmp_state_machine_input_s {
+ const char *name;
+ int steps_so_far;
+ netsnmp_state_machine_step *steps;
+ netsnmp_state_machine_step *cleanup;
+ netsnmp_state_machine_step *last_run;
+
+ /*
+ * user fields (not touched by state machine functions)
+ */
+ void *input_context;
+
+ } netsnmp_state_machine_input;
+
+
+ NETSNMP_IMPORT int
+ netsnmp_state_machine_run( netsnmp_state_machine_input *input );
+
+ NETSNMP_IMPORT int
+ netsnmp_row_create(netsnmp_session *sess, netsnmp_variable_list *vars,
+ int row_status_index);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* SNMP_CLIENT_H */