serialize.c

00001 #include <net-snmp/net-snmp-config.h>
00002 
00003 #if HAVE_STRING_H
00004 #include <string.h>
00005 #else
00006 #include <strings.h>
00007 #endif
00008 
00009 #include <net-snmp/net-snmp-includes.h>
00010 #include <net-snmp/agent/net-snmp-agent-includes.h>
00011 
00012 #include <net-snmp/agent/serialize.h>
00013 
00030 netsnmp_mib_handler *
00031 netsnmp_get_serialize_handler(void)
00032 {
00033     return netsnmp_create_handler("serialize",
00034                                   netsnmp_serialize_helper_handler);
00035 }
00036 
00039 int
00040 netsnmp_register_serialize(netsnmp_handler_registration *reginfo)
00041 {
00042     netsnmp_inject_handler(reginfo, netsnmp_get_serialize_handler());
00043     return netsnmp_register_handler(reginfo);
00044 }
00045 
00047 int
00048 netsnmp_serialize_helper_handler(netsnmp_mib_handler *handler,
00049                                  netsnmp_handler_registration *reginfo,
00050                                  netsnmp_agent_request_info *reqinfo,
00051                                  netsnmp_request_info *requests)
00052 {
00053 
00054     netsnmp_request_info *request, *requesttmp;
00055 
00056     DEBUGMSGTL(("helper:serialize", "Got request\n"));
00057     /*
00058      * loop through requests 
00059      */
00060     for (request = requests; request; request = request->next) {
00061         int             ret;
00062 
00063         /*
00064          * store next pointer and delete it 
00065          */
00066         requesttmp = request->next;
00067         request->next = NULL;
00068 
00069         /*
00070          * call the next handler 
00071          */
00072         ret =
00073             netsnmp_call_next_handler(handler, reginfo, reqinfo, request);
00074 
00075         /*
00076          * restore original next pointer 
00077          */
00078         request->next = requesttmp;
00079 
00080         if (ret != SNMP_ERR_NOERROR)
00081             return ret;
00082     }
00083 
00084     return SNMP_ERR_NOERROR;
00085 }
00086 
00092 void
00093 netsnmp_init_serialize(void)
00094 {
00095     netsnmp_register_handler_by_name("serialize",
00096                                      netsnmp_get_serialize_handler());
00097 }

net-snmpに対してSat Sep 5 13:14:23 2009に生成されました。  doxygen 1.4.7