📄 inetcidrroutetable.c
字号:
/* * Note: this file originally auto-generated by mib2c using * version : 1.32 $ of : mfd-top.m2c,v $ * * $Id: inetCidrRouteTable.c,v 1.5 2004/10/16 00:00:31 rstory Exp $ *//** \mainpage MFD helper for inetCidrRouteTable * * \section intro Introduction * Introductory text. * *//* * standard Net-SNMP includes */#include <net-snmp/net-snmp-config.h>#include <net-snmp/net-snmp-includes.h>#include <net-snmp/agent/net-snmp-agent-includes.h>/* * include our parent header */#include "inetCidrRouteTable.h"#include <net-snmp/agent/mib_modules.h>#include "inetCidrRouteTable_interface.h"oid inetCidrRouteTable_oid[] = { INETCIDRROUTETABLE_OID };int inetCidrRouteTable_oid_size =OID_LENGTH(inetCidrRouteTable_oid);void initialize_table_inetCidrRouteTable(void);/** * Initializes the inetCidrRouteTable module */voidinit_inetCidrRouteTable(void){ DEBUGMSGTL(("verbose:inetCidrRouteTable:init_inetCidrRouteTable", "called\n")); /* * TODO:300:o: Perform inetCidrRouteTable one-time module initialization. */ /* * here we initialize all the tables we're planning on supporting */ if (should_init("inetCidrRouteTable")) initialize_table_inetCidrRouteTable();} /* init_inetCidrRouteTable *//** * Initialize the table inetCidrRouteTable * (Define its contents and how it's structured) */voidinitialize_table_inetCidrRouteTable(void){ inetCidrRouteTable_registration_ptr user_context; u_long flags; DEBUGMSGTL(("verbose:inetCidrRouteTable:initialize_table_inetCidrRouteTable", "called\n")); /* * TODO:301:o: Perform inetCidrRouteTable one-time table initialization. */ /* * TODO:302:o: |->Initialize inetCidrRouteTable user context * if you'd like to pass in a pointer to some data for this * table, allocate or set it up here. */ /* * a netsnmp_data_list is a simple way to store void pointers. A simple * string token is used to add, find or remove pointers. */ user_context = netsnmp_create_data_list("inetCidrRouteTable", NULL, NULL); /* * No support for any flags yet, but in the future you would * set any flags here. */ flags = 0; /* * call interface initialization code */ _inetCidrRouteTable_initialize_interface(user_context, flags);} /* initialize_table_inetCidrRouteTable *//** * pre-request callback * * * @retval MFD_SUCCESS : success. * @retval MFD_ERROR : other error */intinetCidrRouteTable_pre_request(inetCidrRouteTable_registration_ptr user_context){ DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_pre_request", "called\n")); /* * TODO:510:o: Perform inetCidrRouteTable pre-request actions. */ return MFD_SUCCESS;} /* inetCidrRouteTable_pre_request *//** * post-request callback * * * @retval MFD_SUCCESS : success. * @retval MFD_ERROR : other error (ignored) */intinetCidrRouteTable_post_request(inetCidrRouteTable_registration_ptr user_context){ DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_post_request", "called\n")); /* * TODO:511:o: Perform inetCidrRouteTable pos-request actions. */ return MFD_SUCCESS;} /* inetCidrRouteTable_post_request *//********************************************************************** ********************************************************************** *** *** Table inetCidrRouteTable *** ********************************************************************** **********************************************************************//* * inetCidrRouteTable is subid 7 of ipForward. * Its status is Current. * OID: .1.3.6.1.2.1.4.24.7, length: 9 *//* * --------------------------------------------------------------------- * * TODO:200:r: Implement inetCidrRouteTable data context functions. *//* * inetCidrRouteTable_allocate_data * * Purpose: create new inetCidrRouteTable_data. */inetCidrRouteTable_data *inetCidrRouteTable_allocate_data(void){ /* * TODO:201:r: |-> allocate memory for the inetCidrRouteTable data context. */ inetCidrRouteTable_data *rtn = netsnmp_access_route_entry_create(); DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_allocate_data", "called\n")); if (NULL == rtn) { snmp_log(LOG_ERR, "unable to malloc memory for new " "inetCidrRouteTable_data.\n"); } return rtn;} /* inetCidrRouteTable_allocate_data *//* * inetCidrRouteTable_release_data * * Purpose: release inetCidrRouteTable data. */voidinetCidrRouteTable_release_data(inetCidrRouteTable_data * data){ DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_release_data", "called\n")); /* * TODO:202:r: |-> release memory for the inetCidrRouteTable data context. */ netsnmp_access_route_entry_free(data);} /* inetCidrRouteTable_release_data *//** * set mib index(es) * * @param tbl_idx mib index structure * * @retval MFD_SUCCESS : success. * @retval MFD_ERROR : other error. * * @remark * This convenience function is useful for setting all the MIB index * components with a single function call. It is assume that the C values * have already been mapped from their native/rawformat to the MIB format. */intinetCidrRouteTable_indexes_set_tbl_idx(inetCidrRouteTable_mib_index * tbl_idx, u_long inetCidrRouteDestType_val, char *inetCidrRouteDest_val_ptr, size_t inetCidrRouteDest_val_ptr_len, u_long inetCidrRoutePfxLen_val, oid * inetCidrRoutePolicy_val_ptr, size_t inetCidrRoutePolicy_val_ptr_len, u_long inetCidrRouteNextHopType_val, char *inetCidrRouteNextHop_val_ptr, size_t inetCidrRouteNextHop_val_ptr_len){ DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_indexes_set_tbl_idx", "called\n")); /* * inetCidrRouteDestType(1)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h */ /** WARNING: this code might not work for netsnmp_route_entry */ tbl_idx->inetCidrRouteDestType = inetCidrRouteDestType_val; /* * inetCidrRouteDest(2)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h */ tbl_idx->inetCidrRouteDest_len = sizeof(tbl_idx->inetCidrRouteDest); /** WARNING: this code might not work for netsnmp_route_entry */ /* * make sure there is enough space for inetCidrRouteDest data */ if (tbl_idx->inetCidrRouteDest_len < inetCidrRouteDest_val_ptr_len) { snmp_log(LOG_ERR, "not enough space for value\n"); return MFD_ERROR; } tbl_idx->inetCidrRouteDest_len = inetCidrRouteDest_val_ptr_len; memcpy(tbl_idx->inetCidrRouteDest, inetCidrRouteDest_val_ptr, tbl_idx->inetCidrRouteDest_len * sizeof(tbl_idx->inetCidrRouteDest[0])); /* * inetCidrRoutePfxLen(3)/InetAddressPrefixLength/ASN_UNSIGNED/u_long(u_long)//l/a/w/e/R/d/H */ /** WARNING: this code might not work for netsnmp_route_entry */ tbl_idx->inetCidrRoutePfxLen = inetCidrRoutePfxLen_val; /* * inetCidrRoutePolicy(4)/OBJECTID/ASN_OBJECT_ID/oid(oid)//L/a/w/e/r/d/h */ tbl_idx->inetCidrRoutePolicy_len = sizeof(tbl_idx->inetCidrRoutePolicy); /** WARNING: this code might not work for netsnmp_route_entry */ /* * make sure there is enough space for inetCidrRoutePolicy data */ if (tbl_idx->inetCidrRoutePolicy_len < inetCidrRoutePolicy_val_ptr_len) { snmp_log(LOG_ERR, "not enough space for value\n"); return MFD_ERROR; } if (0 != inetCidrRoutePolicy_val_ptr_len) tbl_idx->inetCidrRoutePolicy_len = inetCidrRoutePolicy_val_ptr_len; else { tbl_idx->inetCidrRoutePolicy_len = nullOidLen / sizeof(oid); inetCidrRoutePolicy_val_ptr = nullOid; } memcpy(tbl_idx->inetCidrRoutePolicy, inetCidrRoutePolicy_val_ptr, tbl_idx->inetCidrRoutePolicy_len * sizeof(tbl_idx->inetCidrRoutePolicy[0])); /* * inetCidrRouteNextHopType(5)/InetAddressType/ASN_INTEGER/long(u_long)//l/a/w/E/r/d/h */ /** WARNING: this code might not work for netsnmp_route_entry */ tbl_idx->inetCidrRouteNextHopType = inetCidrRouteNextHopType_val; /* * inetCidrRouteNextHop(6)/InetAddress/ASN_OCTET_STR/char(char)//L/a/w/e/R/d/h */ tbl_idx->inetCidrRouteNextHop_len = sizeof(tbl_idx->inetCidrRouteNextHop); /** WARNING: this code might not work for netsnmp_route_entry */ /* * make sure there is enough space for inetCidrRouteNextHop data */ if ((NULL == tbl_idx->inetCidrRouteNextHop) || (tbl_idx->inetCidrRouteNextHop_len < inetCidrRouteNextHop_val_ptr_len)) { snmp_log(LOG_ERR, "not enough space for value\n"); return MFD_ERROR; } tbl_idx->inetCidrRouteNextHop_len = inetCidrRouteNextHop_val_ptr_len; memcpy(tbl_idx->inetCidrRouteNextHop, inetCidrRouteNextHop_val_ptr, tbl_idx->inetCidrRouteNextHop_len * sizeof(tbl_idx->inetCidrRouteNextHop[0])); return MFD_SUCCESS;} /* inetCidrRouteTable_indexes_set_tbl_idx *//** * @internal * set row context indexes * * @param reqreq_ctx the row context that needs updated indexes * * @retval MFD_SUCCESS : success. * @retval MFD_ERROR : other error. * * @remark * This function sets the mib indexs, then updates the oid indexs * from the mib index. */intinetCidrRouteTable_indexes_set(inetCidrRouteTable_rowreq_ctx * rowreq_ctx, u_long inetCidrRouteDestType_val, char *inetCidrRouteDest_val_ptr, size_t inetCidrRouteDest_val_ptr_len, u_long inetCidrRoutePfxLen_val, oid * inetCidrRoutePolicy_val_ptr, size_t inetCidrRoutePolicy_val_ptr_len, u_long inetCidrRouteNextHopType_val, char *inetCidrRouteNextHop_val_ptr, size_t inetCidrRouteNextHop_val_ptr_len){ DEBUGMSGTL(("verbose:inetCidrRouteTable:inetCidrRouteTable_indexes_set", "called\n")); if (MFD_SUCCESS != inetCidrRouteTable_indexes_set_tbl_idx(&rowreq_ctx->tbl_idx, inetCidrRouteDestType_val, inetCidrRouteDest_val_ptr, inetCidrRouteDest_val_ptr_len, inetCidrRoutePfxLen_val, inetCidrRoutePolicy_val_ptr, inetCidrRoutePolicy_val_ptr_len, inetCidrRouteNextHopType_val, inetCidrRouteNextHop_val_ptr, inetCidrRouteNextHop_val_ptr_len)) return MFD_ERROR; /* * convert mib index to oid index */ rowreq_ctx->oid_idx.len = sizeof(rowreq_ctx->oid_tmp) / sizeof(oid); if (0 != inetCidrRouteTable_index_to_oid(&rowreq_ctx->oid_idx, &rowreq_ctx->tbl_idx)) { return MFD_ERROR; } return MFD_SUCCESS;} /* inetCidrRouteTable_indexes_set *//*--------------------------------------------------------------------- * IP-FORWARD-MIB::inetCidrRouteEntry.inetCidrRouteIfIndex * inetCidrRouteIfIndex is subid 7 of inetCidrRouteEntry. * Its status is Current, and its access level is Create.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -