smux.h
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * Smux module authored by Rohit Dube.
  3.  * Rewritten by Nick Amato <naamato@merit.net>.
  4.  */
  5. config_belongs_in(agent_module)
  6. #define SMUXPORT 199
  7. #define SMUXMAXPKTSIZE 1500
  8. #define SMUXMAXSTRLEN  1024
  9. #define SMUXMAXPEERS   10
  10. #define SMUX_OPEN  (ASN_APPLICATION | ASN_CONSTRUCTOR | 0)
  11. #define SMUX_CLOSE      (ASN_APPLICATION | ASN_PRIMITIVE | 1)
  12. #define SMUX_RREQ       (ASN_APPLICATION | ASN_CONSTRUCTOR | 2)
  13. #define SMUX_RRSP       (ASN_APPLICATION | ASN_PRIMITIVE | 3)
  14. #define SMUX_SOUT       (ASN_APPLICATION | ASN_PRIMITIVE | 4)
  15. #define SMUX_GET        (ASN_CONTEXT | ASN_CONSTRUCTOR | 0)
  16. #define SMUX_GETNEXT    (ASN_CONTEXT | ASN_CONSTRUCTOR | 1)
  17. #define SMUX_GETRSP     (ASN_CONTEXT | ASN_CONSTRUCTOR | 2)
  18. #define SMUX_SET (ASN_CONTEXT | ASN_CONSTRUCTOR | 3)
  19. #define SMUX_TRAP (ASN_CONTEXT | ASN_CONSTRUCTOR | 4)
  20. #define SMUXC_GOINGDOWN                    0
  21. #define SMUXC_UNSUPPORTEDVERSION           1
  22. #define SMUXC_PACKETFORMAT                 2
  23. #define SMUXC_PROTOCOLERROR                3
  24. #define SMUXC_INTERNALERROR                4
  25. #define SMUXC_AUTHENTICATIONFAILURE        5
  26. #define SMUX_MAX_PEERS          10
  27. #define SMUX_MAX_PRIORITY       2147483647
  28. #define SMUX_REGOP_DELETE 0
  29. #define SMUX_REGOP_REGISTER_RO 1
  30. #define SMUX_REGOP_REGISTER_RW 2
  31. /*
  32.  * Authorized peers read from the config file
  33.  */
  34. typedef struct _smux_peer_auth {
  35.     oid             sa_oid[MAX_OID_LEN];        /* name of peer                 */
  36.     size_t          sa_oid_len; /* length of peer name          */
  37.     char            sa_passwd[SMUXMAXSTRLEN];   /* configured passwd            */
  38.     int             sa_active_fd;       /* the peer using this auth     */
  39. } smux_peer_auth;
  40. /*
  41.  * Registrations
  42.  */
  43. typedef struct _smux_reg {
  44.     oid             sr_name[MAX_OID_LEN];       /* name of subtree              */
  45.     size_t          sr_name_len;        /* length of subtree name       */
  46.     int             sr_priority;        /* priority of registration     */
  47.     int             sr_fd;      /* descriptor of owner          */
  48.     struct _smux_reg *sr_next;  /* next one                     */
  49. } smux_reg;
  50. extern void     init_smux(void);
  51. extern void     real_init_smux(void);
  52. extern int      smux_accept(int);
  53. extern u_char  *smux_snmp_process(int, oid *, size_t *, size_t *, u_char *,
  54.                                   int);
  55. extern int      smux_process(int);
  56. extern void     smux_parse_peer_auth(const char *, char *);
  57. extern void     smux_free_peer_auth(void);
  58. extern void     send_enterprise_trap_vars(int, int, oid *, int,
  59.                                           netsnmp_variable_list *);