summaryrefslogtreecommitdiff
path: root/apps/snmptrapd_handlers.h
diff options
context:
space:
mode:
Diffstat (limited to 'apps/snmptrapd_handlers.h')
-rw-r--r--apps/snmptrapd_handlers.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/apps/snmptrapd_handlers.h b/apps/snmptrapd_handlers.h
new file mode 100644
index 0000000..097c02d
--- /dev/null
+++ b/apps/snmptrapd_handlers.h
@@ -0,0 +1,68 @@
+#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;
+Netsnmp_Trap_Handler mysql_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_DEFAULT_HANDLER 4
+
+#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 */