snmptrapd_handlers.h 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #ifndef SNMPTRAPD_HANDLERS_H
  2. #define SNMPTRAPD_HANDLERS_H
  3. extern "C" {
  4. typedef struct netsnmp_trapd_handler_s netsnmp_trapd_handler;
  5. typedef int (Netsnmp_Trap_Handler)(netsnmp_pdu *pdu,
  6. netsnmp_transport *transport,
  7. netsnmp_trapd_handler *handler);
  8. #define NETSNMP_TRAPHANDLER_FLAG_MATCH_TREE 0x1
  9. #define NETSNMP_TRAPHANDLER_FLAG_STRICT_SUBTREE 0x2
  10. struct netsnmp_trapd_handler_s {
  11. oid *trapoid;
  12. int trapoid_len;
  13. char *token; /* Or an array of tokens? */
  14. char *format; /* Formatting string */
  15. int version; /* ??? */
  16. int authtypes;
  17. int flags;
  18. Netsnmp_Trap_Handler *handler;
  19. void *handler_data;
  20. netsnmp_trapd_handler *nexth; /* Next handler for this trap */
  21. /* Doubly-linked list of traps with registered handlers */
  22. netsnmp_trapd_handler *prevt;
  23. netsnmp_trapd_handler *nextt;
  24. };
  25. Netsnmp_Trap_Handler syslog_handler;
  26. Netsnmp_Trap_Handler command_handler;
  27. Netsnmp_Trap_Handler event_handler;
  28. Netsnmp_Trap_Handler forward_handler;
  29. Netsnmp_Trap_Handler axforward_handler;
  30. Netsnmp_Trap_Handler notification_handler;
  31. Netsnmp_Trap_Handler mysql_handler;
  32. void free_trap1_fmt(void);
  33. void free_trap2_fmt(void);
  34. extern char *print_format1;
  35. extern char *print_format2;
  36. extern int SyslogTrap;
  37. extern int dropauth;
  38. #define NETSNMPTRAPD_AUTH_HANDLER 1
  39. #define NETSNMPTRAPD_PRE_HANDLER 2
  40. #define NETSNMPTRAPD_POST_HANDLER 3
  41. #define NETSNMPTRAPD_DEFAULT_HANDLER 4
  42. #define NETSNMPTRAPD_HANDLER_OK 1 /* Succeed, & keep going */
  43. #define NETSNMPTRAPD_HANDLER_FAIL 2 /* Failed but keep going */
  44. #define NETSNMPTRAPD_HANDLER_BREAK 3 /* Move to the next list */
  45. #define NETSNMPTRAPD_HANDLER_FINISH 4 /* No further processing */
  46. void snmptrapd_register_configs( void );
  47. netsnmp_trapd_handler *netsnmp_add_global_traphandler(int list, Netsnmp_Trap_Handler* handler);
  48. netsnmp_trapd_handler *netsnmp_add_default_traphandler(Netsnmp_Trap_Handler* handler);
  49. netsnmp_trapd_handler *netsnmp_add_traphandler(Netsnmp_Trap_Handler* handler,
  50. oid *trapOid, int trapOidLen);
  51. netsnmp_trapd_handler *netsnmp_get_traphandler(oid *trapOid, int trapOidLen);
  52. const char *trap_description(int trap);
  53. int snmp_input(int op, netsnmp_session *session,
  54. int reqid, netsnmp_pdu *pdu, void *magic);
  55. void parse_format(const char *token, char *line);
  56. }
  57. #endif /* SNMPTRAPD_HANDLERS_H */