| #ifndef SNMPTRAPD_HANDLERS_H |
| #define SNMPTRAPD_HANDLERS_H |
| |
| typedef struct netsnmp_trapd_handler_s netsnmp_trapd_handler; |
| |
| typedef int (Netsnmp_Trap_Handler)(netsnmp_pdu *pdu, |
| netsnmp_transport *transport, |
| netsnmp_trapd_handler *handler); |
| |
| |
| #define NETSNMP_TRAPHANDLER_FLAG_MATCH_TREE 0x1 |
| #define NETSNMP_TRAPHANDLER_FLAG_STRICT_SUBTREE 0x2 |
| |
| struct netsnmp_trapd_handler_s { |
| oid *trapoid; |
| int trapoid_len; |
| char *token; /* Or an array of tokens? */ |
| char *format; /* Formatting string */ |
| int version; /* ??? */ |
| int authtypes; |
| int flags; |
| Netsnmp_Trap_Handler *handler; |
| void *handler_data; |
| |
| netsnmp_trapd_handler *nexth; /* Next handler for this trap */ |
| /* Doubly-linked list of traps with registered handlers */ |
| netsnmp_trapd_handler *prevt; |
| netsnmp_trapd_handler *nextt; |
| }; |
| |
| Netsnmp_Trap_Handler syslog_handler; |
| Netsnmp_Trap_Handler print_handler; |
| Netsnmp_Trap_Handler command_handler; |
| Netsnmp_Trap_Handler event_handler; |
| Netsnmp_Trap_Handler forward_handler; |
| Netsnmp_Trap_Handler axforward_handler; |
| Netsnmp_Trap_Handler notification_handler; |
| |
| void free_trap1_fmt(void); |
| void free_trap2_fmt(void); |
| extern char *print_format1; |
| extern char *print_format2; |
| |
| #define NETSNMPTRAPD_AUTH_HANDLER 1 |
| #define NETSNMPTRAPD_PRE_HANDLER 2 |
| #define NETSNMPTRAPD_POST_HANDLER 3 |
| |
| #define NETSNMPTRAPD_HANDLER_OK 1 /* Succeed, & keep going */ |
| #define NETSNMPTRAPD_HANDLER_FAIL 2 /* Failed but keep going */ |
| #define NETSNMPTRAPD_HANDLER_BREAK 3 /* Move to the next list */ |
| #define NETSNMPTRAPD_HANDLER_FINISH 4 /* No further processing */ |
| |
| void snmptrapd_register_configs( void ); |
| netsnmp_trapd_handler *netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler* handler); |
| netsnmp_trapd_handler *netsnmp_add_default_traphandler(Netsnmp_Trap_Handler* handler); |
| netsnmp_trapd_handler *netsnmp_add_traphandler(Netsnmp_Trap_Handler* handler, |
| oid *trapOid, int trapOidLen); |
| netsnmp_trapd_handler *netsnmp_get_traphandler(oid *trapOid, int trapOidLen); |
| |
| const char *trap_description(int trap); |
| void do_external(char *cmd, struct hostent *host, |
| netsnmp_pdu *pdu, netsnmp_transport *transport); |
| int snmp_input(int op, netsnmp_session *session, |
| int reqid, netsnmp_pdu *pdu, void *magic); |
| |
| #endif /* SNMPTRAPD_HANDLERS_H */ |