blob: c905c4b2907ea432c44c85d5f050603264598221 [file] [log] [blame]
/*
* Note: this file originally auto-generated by mib2c using
* : mib2c.access_functions.conf$
*/
#include <net-snmp/net-snmp-config.h>
#include "route_headers.h"
#include <net-snmp/net-snmp-includes.h>
#include <net-snmp/agent/net-snmp-agent-includes.h>
#include "ipCidrRouteTable_access.h"
#include "ipCidrRouteTable_enums.h"
/*
* NOTE:
* - these GET routines MUST return freshly malloced data and must not
* return a pointer which is still in use somewhere else.
* - these SET routines must copy the incoming data and can not take
* ownership of the memory passed in by the val pointer.
*/
/** a global static we'll make use of a lot to map to the right
datatype to return (which for SNMP integer's is always a long). */
static u_long long_ret;
static in_addr_t addr_ret;
/*
* User-defined data access functions for data in table ipCidrRouteTable
*/
u_long *
get_ipCidrRouteDest(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
addr_ret = ((struct sockaddr_in *) (&ourroute->rt_dst))->sin_addr.s_addr;
*ret_len = sizeof(addr_ret);
return &addr_ret;
}
u_long *
get_ipCidrRouteMask(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
addr_ret = ((struct sockaddr_in *) (&ourroute->rt_genmask))->sin_addr.s_addr;
*ret_len = sizeof(addr_ret);
return &addr_ret;
}
long *
get_ipCidrRouteTos(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
long_ret = ourroute->rt_tos;
*ret_len = sizeof(long_ret);
return &long_ret;
}
u_long *
get_ipCidrRouteNextHop(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
addr_ret = ((struct sockaddr_in *) (&ourroute->rt_gateway))->sin_addr.s_addr;
*ret_len = sizeof(addr_ret);
return &addr_ret;
}
long *
get_ipCidrRouteIfIndex(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
long_ret = ourroute->rt_unit;
*ret_len = sizeof(long_ret);;
return &long_ret;
}
int
set_ipCidrRouteIfIndex(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
long *
get_ipCidrRouteType(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
if (ourroute->rt_flags & RTF_UP) {
if (ourroute->rt_flags & RTF_GATEWAY) {
long_ret = IPCIDRROUTETYPE_REMOTE;
} else {
long_ret = IPCIDRROUTETYPE_LOCAL;
}
} else {
long_ret = IPCIDRROUTETYPE_REJECT;
}
*ret_len = sizeof(long_ret);
return &long_ret;
}
int
set_ipCidrRouteType(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
long *
get_ipCidrRouteProto(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
/* XXX: this is wacked */
long_ret = (ourroute->rt_flags & RTF_DYNAMIC)
? IPCIDRROUTEPROTO_ICMP : IPCIDRROUTEPROTO_LOCAL;
*ret_len = sizeof(long_ret);
return &long_ret;
}
long *
get_ipCidrRouteAge(void *data_context, size_t * ret_len)
{
long_ret = 0; /* we don't know, and defval = 0 */
*ret_len = sizeof(long_ret);
return &long_ret;
}
oid *
get_ipCidrRouteInfo(void *data_context, size_t * ret_len)
{
static oid zerodotzero[2] = { 0, 0 };
*ret_len = sizeof(zerodotzero);
return zerodotzero;
}
int
set_ipCidrRouteInfo(void *data_context, oid * val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
/** XXX: return a data pointer to the data for the ipCidrRouteNextHopAS column and set
ret_len to its proper size in bytes. */
long *
get_ipCidrRouteNextHopAS(void *data_context, size_t * ret_len)
{
long_ret = 0; /* we don't know, and defval = 0 */
*ret_len = sizeof(long_ret);
return &long_ret;
}
int
set_ipCidrRouteNextHopAS(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
long *
get_ipCidrRouteMetric1(void *data_context, size_t * ret_len)
{
RTENTRY *ourroute = (RTENTRY *) data_context;
long_ret = ourroute->rt_metric;
*ret_len = sizeof(long_ret);
return &long_ret;
}
int
set_ipCidrRouteMetric1(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
long *
get_ipCidrRouteMetric2(void *data_context, size_t * ret_len)
{
long_ret = -1; /* unused */
*ret_len = sizeof(long_ret);
return &long_ret;
}
/** XXX: Set the value of the ipCidrRouteMetric2 column and return
SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
int
set_ipCidrRouteMetric2(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
/** XXX: return a data pointer to the data for the ipCidrRouteMetric3 column and set
ret_len to its proper size in bytes. */
long *
get_ipCidrRouteMetric3(void *data_context, size_t * ret_len)
{
long_ret = -1; /* unused */
*ret_len = sizeof(long_ret);
return &long_ret;
}
/** XXX: Set the value of the ipCidrRouteMetric3 column and return
SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
int
set_ipCidrRouteMetric3(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
/** XXX: return a data pointer to the data for the ipCidrRouteMetric4 column and set
ret_len to its proper size in bytes. */
long *
get_ipCidrRouteMetric4(void *data_context, size_t * ret_len)
{
long_ret = -1; /* unused */
*ret_len = sizeof(long_ret);
return &long_ret;
}
/** XXX: Set the value of the ipCidrRouteMetric4 column and return
SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
int
set_ipCidrRouteMetric4(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
/** XXX: return a data pointer to the data for the ipCidrRouteMetric5 column and set
ret_len to its proper size in bytes. */
long *
get_ipCidrRouteMetric5(void *data_context, size_t * ret_len)
{
long_ret = -1; /* unused */
*ret_len = sizeof(long_ret);
return &long_ret;
}
/** XXX: Set the value of the ipCidrRouteMetric5 column and return
SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
int
set_ipCidrRouteMetric5(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}
/** XXX: return a data pointer to the data for the ipCidrRouteStatus column and set
ret_len to its proper size in bytes. */
long *
get_ipCidrRouteStatus(void *data_context, size_t * ret_len)
{
/* the only value supported for real routes */
long_ret = IPCIDRROUTESTATUS_ACTIVE;
*ret_len = sizeof(long_ret);
return &long_ret;
}
/** XXX: Set the value of the ipCidrRouteStatus column and return
SNMPERR_SUCCESS on SNMPERR_GENERR on failure. */
int
set_ipCidrRouteStatus(void *data_context, long *val, size_t val_len)
{
return SNMP_ERR_NOERROR; /** XXX: change if an error occurs */
}