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

SNMP编程

开发平台:

Unix_Linux

  1. #include <net-snmp/net-snmp-config.h>
  2. #if HAVE_STRING_H
  3. #include <string.h>
  4. #else
  5. #include <strings.h>
  6. #endif
  7. #include <net-snmp/net-snmp-includes.h>
  8. #include <net-snmp/agent/net-snmp-agent-includes.h>
  9. #include <net-snmp/agent/null.h>
  10. #if HAVE_DMALLOC_H
  11. #include <dmalloc.h>
  12. #endif
  13. int
  14. netsnmp_register_null(oid * loc, size_t loc_len)
  15. {
  16.     return netsnmp_register_null_context(loc, loc_len, NULL);
  17. }
  18. int
  19. netsnmp_register_null_context(oid * loc, size_t loc_len,
  20.                               const char *contextName)
  21. {
  22.     netsnmp_handler_registration *reginfo;
  23.     reginfo = SNMP_MALLOC_TYPEDEF(netsnmp_handler_registration);
  24.     reginfo->handlerName = strdup("");
  25.     reginfo->rootoid = loc;
  26.     reginfo->rootoid_len = loc_len;
  27.     reginfo->handler =
  28.         netsnmp_create_handler("null", netsnmp_null_handler);
  29.     if (contextName)
  30.         reginfo->contextName = strdup(contextName);
  31.     reginfo->modes = HANDLER_CAN_DEFAULT;
  32.     return netsnmp_register_handler(reginfo);
  33. }
  34. int
  35. netsnmp_null_handler(netsnmp_mib_handler *handler,
  36.                      netsnmp_handler_registration *reginfo,
  37.                      netsnmp_agent_request_info *reqinfo,
  38.                      netsnmp_request_info *requests)
  39. {
  40.     DEBUGMSGTL(("helper:null", "Got requestn"));
  41.     DEBUGMSGTL(("helper:null", "  oid:"));
  42.     DEBUGMSGOID(("helper:null", requests->requestvb->name,
  43.                  requests->requestvb->name_length));
  44.     DEBUGMSG(("helper:null", "n"));
  45.     switch (reqinfo->mode) {
  46.     case MODE_GETNEXT:
  47.     case MODE_GETBULK:
  48.         return SNMP_ERR_NOERROR;
  49.     case MODE_GET:
  50.         netsnmp_set_all_requests_error(reqinfo, requests,
  51.                                        SNMP_NOSUCHOBJECT);
  52.         return SNMP_ERR_NOERROR;
  53.     default:
  54.         netsnmp_set_all_requests_error(reqinfo, requests,
  55.                                        SNMP_ERR_NOSUCHNAME);
  56.         return SNMP_ERR_NOERROR;
  57.     }
  58. }