#ifndef NETSNMP_SYSORTABLE_H #define NETSNMP_SYSORTABLE_H struct sysORTable { char *OR_descr; oid *OR_oid; size_t OR_oidlen; netsnmp_session *OR_sess; u_long OR_uptime; }; struct register_sysOR_parameters { char *descr; oid *name; size_t namelen; }; #define SYS_ORTABLE_REGISTERED_OK 0 #define SYS_ORTABLE_REGISTRATION_FAILED -1 #define SYS_ORTABLE_UNREGISTERED_OK 0 #define SYS_ORTABLE_NO_SUCH_REGISTRATION -1 #include #define REGISTER_SYSOR_TABLE(theoid, len, descr) \ do { \ struct sysORTable t; \ t.OR_descr = NETSNMP_REMOVE_CONST(char *, descr); \ t.OR_oid = theoid; \ t.OR_oidlen = len; \ t.OR_sess = NULL; \ t.OR_uptime = 0; \ snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \ SNMPD_CALLBACK_REQ_REG_SYSOR, &t); \ } while(0); #define REGISTER_SYSOR_ENTRY(theoid, descr) \ REGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid), \ descr) #define UNREGISTER_SYSOR_TABLE(theoid, len) \ do { \ struct sysORTable t; \ t.OR_descr = NULL; \ t.OR_oid = theoid; \ t.OR_oidlen = len; \ t.OR_sess = NULL; \ t.OR_uptime = 0; \ snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \ SNMPD_CALLBACK_REQ_UNREG_SYSOR, &t); \ } while(0); #define UNREGISTER_SYSOR_ENTRY(theoid) \ UNREGISTER_SYSOR_TABLE(theoid, sizeof(theoid) / sizeof(oid)) #define UNREGISTER_SYSOR_SESS(sess) \ snmp_call_callbacks(SNMP_CALLBACK_APPLICATION, \ SNMPD_CALLBACK_REQ_UNREG_SYSOR_SESS, \ sess); #endif /* NETSNMP_SYSORTABLE_H */