sysORTable.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef NETSNMP_SYSORTABLE_H
  2. #define NETSNMP_SYSORTABLE_H
  3. struct sysORTable {
  4. char *OR_descr;
  5. oid *OR_oid;
  6. size_t OR_oidlen;
  7. netsnmp_session *OR_sess;
  8. u_long OR_uptime;
  9. };
  10. struct register_sysOR_parameters {
  11. char *descr;
  12. oid *name;
  13. size_t namelen;
  14. };
  15. #define SYS_ORTABLE_REGISTERED_OK 0
  16. #define SYS_ORTABLE_REGISTRATION_FAILED -1
  17. #define SYS_ORTABLE_UNREGISTERED_OK 0
  18. #define SYS_ORTABLE_NO_SUCH_REGISTRATION -1
  19. #include <net-snmp/agent/agent_callbacks.h>
  20. #define REGISTER_SYSOR_TABLE(theoid, len, descr) \
  21. do { \
  22. struct sysORTable t; \
  23. t.OR_descr = NETSNMP_REMOVE_CONST(char *, descr); \
  24. t.OR_oid = theoid; \
  25. t.OR_oidlen = len; \
  26. t.OR_sess = NULL; \
  27. t.OR_uptime = 0; \
  28. snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \
  29. SNMPD_CALLBACK_REQ_REG_SYSOR, &t); \
  30. } while(0);
  31. #define REGISTER_SYSOR_ENTRY(theoid, descr) \
  32. REGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid), \
  33. descr)
  34. #define UNREGISTER_SYSOR_TABLE(theoid, len) \
  35. do { \
  36. struct sysORTable t; \
  37. t.OR_descr = NULL; \
  38. t.OR_oid = theoid; \
  39. t.OR_oidlen = len; \
  40. t.OR_sess = NULL; \
  41. t.OR_uptime = 0; \
  42. snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \
  43. SNMPD_CALLBACK_REQ_UNREG_SYSOR, &t); \
  44. } while(0);
  45. #define UNREGISTER_SYSOR_ENTRY(theoid) \
  46. UNREGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid))
  47. #define UNREGISTER_SYSOR_SESS(sess) \
  48. snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \
  49. SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS, \
  50. sess);
  51. #endif /* NETSNMP_SYSORTABLE_H */