| /* |
| * 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 *); |
| NETSNMP_IMPORT |
| int netsnmp_query_set( netsnmp_variable_list *, netsnmp_session *); |
| |
| /** ************************************************************************** |
| * |
| * 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 */ |