text: #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);
  
  
  struct netsnmp_trapd_handler_s {
       oid  *trapoid;
       int   trapoid_len;
       char *token;		/* Or an array of tokens? */
       char *format;		/* Formatting string */
       int   version;		/* ??? */
       Netsnmp_Trap_Handler *handler;
  
       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;
  
  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 */
  