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

SNMP编程

开发平台:

Unix_Linux

  1. /*
  2.  * Note: this file originally auto-generated by mib2c using
  3.  *        : mib2c.access_functions.conf$
  4.  */
  5. #include <net-snmp/net-snmp-config.h>
  6. #include "route_headers.h"
  7. #include <net-snmp/net-snmp-includes.h>
  8. #include <net-snmp/agent/net-snmp-agent-includes.h>
  9. #include "ipCidrRouteTable_access.h"
  10. #include "ipCidrRouteTable_enums.h"
  11. /*
  12.  * NOTE:
  13.  * - these GET routines MUST return freshly malloced data and must not
  14.  * return a pointer which is still in use somewhere else.
  15.  * - these SET routines must copy the incoming data and can not take
  16.  * ownership of the memory passed in by the val pointer.
  17.  */
  18. /** a global static we'll make use of a lot to map to the right
  19.    datatype to return (which for SNMP integer's is always a long). */
  20. static u_long long_ret;
  21.   
  22. /*
  23.  * User-defined data access functions for data in table ipCidrRouteTable 
  24.  */
  25. u_long         *
  26. get_ipCidrRouteDest(void *data_context, size_t * ret_len)
  27. {
  28.     RTENTRY *ourroute = (RTENTRY *) data_context;
  29.     long_ret = ((struct sockaddr_in *) (&ourroute->rt_dst))->sin_addr.s_addr;
  30.     *ret_len = sizeof(long_ret);
  31.     return &long_ret;
  32. }
  33. u_long         *
  34. get_ipCidrRouteMask(void *data_context, size_t * ret_len)
  35. {
  36.     RTENTRY *ourroute = (RTENTRY *) data_context;
  37.     long_ret = ((struct sockaddr_in *) (&ourroute->rt_genmask))->sin_addr.s_addr;
  38.     *ret_len = sizeof(long_ret);
  39.     return &long_ret;
  40. }
  41. long           *
  42. get_ipCidrRouteTos(void *data_context, size_t * ret_len)
  43. {
  44.     RTENTRY *ourroute = (RTENTRY *) data_context;
  45.     long_ret = ourroute->rt_tos;
  46.     *ret_len = sizeof(long_ret);
  47.     return &long_ret;
  48. }
  49. u_long         *
  50. get_ipCidrRouteNextHop(void *data_context, size_t * ret_len)
  51. {
  52.     RTENTRY *ourroute = (RTENTRY *) data_context;
  53.     long_ret = ((struct sockaddr_in *) (&ourroute->rt_gateway))->sin_addr.s_addr;
  54.     *ret_len = sizeof(long_ret);
  55.     return &long_ret;
  56. }
  57. long           *
  58. get_ipCidrRouteIfIndex(void *data_context, size_t * ret_len)
  59. {
  60.     RTENTRY *ourroute = (RTENTRY *) data_context;
  61.     long_ret = ourroute->rt_unit;
  62.     *ret_len = sizeof(long_ret);;
  63.     return &long_ret;
  64. }
  65. int
  66. set_ipCidrRouteIfIndex(void *data_context, long *val, size_t val_len)
  67. {
  68.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  69. }
  70. long           *
  71. get_ipCidrRouteType(void *data_context, size_t * ret_len)
  72. {
  73.     RTENTRY *ourroute = (RTENTRY *) data_context;
  74.     if (ourroute->rt_flags & RTF_UP) {
  75.         if (ourroute->rt_flags & RTF_GATEWAY) {
  76.             long_ret = IPCIDRROUTETYPE_REMOTE;
  77.         } else {
  78.             long_ret = IPCIDRROUTETYPE_LOCAL;
  79.         }
  80.     } else {
  81.         long_ret = IPCIDRROUTETYPE_REJECT;
  82.     }
  83.     *ret_len = sizeof(long_ret);
  84.     return &long_ret;
  85. }
  86. int
  87. set_ipCidrRouteType(void *data_context, long *val, size_t val_len)
  88. {
  89.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  90. }
  91. long           *
  92. get_ipCidrRouteProto(void *data_context, size_t * ret_len)
  93. {
  94.     RTENTRY *ourroute = (RTENTRY *) data_context;
  95.     /* XXX: this is wacked */
  96.     long_ret = (ourroute->rt_flags & RTF_DYNAMIC)
  97.         ? IPCIDRROUTEPROTO_ICMP : IPCIDRROUTEPROTO_LOCAL;
  98.     *ret_len = sizeof(long_ret);
  99.     return &long_ret;
  100. }
  101. long           *
  102. get_ipCidrRouteAge(void *data_context, size_t * ret_len)
  103. {
  104.     long_ret = 0; /* we don't know, and defval = 0 */
  105.     *ret_len = sizeof(long_ret);
  106.     return &long_ret;
  107. }
  108. oid            *
  109. get_ipCidrRouteInfo(void *data_context, size_t * ret_len)
  110. {
  111.     static oid zerodotzero[2] = { 0, 0 };
  112.     *ret_len = sizeof(zerodotzero);
  113.     return zerodotzero;
  114. }
  115. int
  116. set_ipCidrRouteInfo(void *data_context, oid * val, size_t val_len)
  117. {
  118.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  119. }
  120. /** XXX: return a data pointer to the data for the ipCidrRouteNextHopAS column and set
  121.          ret_len to its proper size in bytes. */
  122. long           *
  123. get_ipCidrRouteNextHopAS(void *data_context, size_t * ret_len)
  124. {
  125.     long_ret = 0; /* we don't know, and defval = 0 */
  126.     *ret_len = sizeof(long_ret);
  127.     return &long_ret;
  128. }
  129. int
  130. set_ipCidrRouteNextHopAS(void *data_context, long *val, size_t val_len)
  131. {
  132.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  133. }
  134. long           *
  135. get_ipCidrRouteMetric1(void *data_context, size_t * ret_len)
  136. {
  137.     RTENTRY *ourroute = (RTENTRY *) data_context;
  138.     long_ret = ourroute->rt_metric;
  139.     *ret_len = sizeof(long_ret);
  140.     return &long_ret;
  141. }
  142. int
  143. set_ipCidrRouteMetric1(void *data_context, long *val, size_t val_len)
  144. {
  145.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  146. }
  147. long           *
  148. get_ipCidrRouteMetric2(void *data_context, size_t * ret_len)
  149. {
  150.     long_ret = -1; /* unused */
  151.     *ret_len = sizeof(long_ret);
  152.     return &long_ret;
  153. }
  154.  /** XXX: Set the value of the ipCidrRouteMetric2 column and return
  155.           SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
  156. int
  157. set_ipCidrRouteMetric2(void *data_context, long *val, size_t val_len)
  158. {
  159.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  160. }
  161. /** XXX: return a data pointer to the data for the ipCidrRouteMetric3 column and set
  162.          ret_len to its proper size in bytes. */
  163. long           *
  164. get_ipCidrRouteMetric3(void *data_context, size_t * ret_len)
  165. {
  166.     long_ret = -1; /* unused */
  167.     *ret_len = sizeof(long_ret);
  168.     return &long_ret;
  169. }
  170.  /** XXX: Set the value of the ipCidrRouteMetric3 column and return
  171.           SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
  172. int
  173. set_ipCidrRouteMetric3(void *data_context, long *val, size_t val_len)
  174. {
  175.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  176. }
  177. /** XXX: return a data pointer to the data for the ipCidrRouteMetric4 column and set
  178.          ret_len to its proper size in bytes. */
  179. long           *
  180. get_ipCidrRouteMetric4(void *data_context, size_t * ret_len)
  181. {
  182.     long_ret = -1; /* unused */
  183.     *ret_len = sizeof(long_ret);
  184.     return &long_ret;
  185. }
  186.  /** XXX: Set the value of the ipCidrRouteMetric4 column and return
  187.           SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
  188. int
  189. set_ipCidrRouteMetric4(void *data_context, long *val, size_t val_len)
  190. {
  191.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  192. }
  193. /** XXX: return a data pointer to the data for the ipCidrRouteMetric5 column and set
  194.          ret_len to its proper size in bytes. */
  195. long           *
  196. get_ipCidrRouteMetric5(void *data_context, size_t * ret_len)
  197. {
  198.     long_ret = -1; /* unused */
  199.     *ret_len = sizeof(long_ret);
  200.     return &long_ret;
  201. }
  202.  /** XXX: Set the value of the ipCidrRouteMetric5 column and return
  203.           SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
  204. int
  205. set_ipCidrRouteMetric5(void *data_context, long *val, size_t val_len)
  206. {
  207.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  208. }
  209. /** XXX: return a data pointer to the data for the ipCidrRouteStatus column and set
  210.          ret_len to its proper size in bytes. */
  211. long           *
  212. get_ipCidrRouteStatus(void *data_context, size_t * ret_len)
  213. {
  214.     /* the only value supported for real routes */
  215.     long_ret = IPCIDRROUTESTATUS_ACTIVE;
  216.     *ret_len = sizeof(long_ret);
  217.     return &long_ret;
  218. }
  219.  /** XXX: Set the value of the ipCidrRouteStatus column and return
  220.           SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
  221. int
  222. set_ipCidrRouteStatus(void *data_context, long *val, size_t val_len)
  223. {
  224.     return SNMP_ERR_NOERROR;      /** XXX: change if an error occurs */
  225. }