Blame apps/snmptrapd_handlers.h

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