⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 node-set.m2i

📁 snmp的源代码,已经在我的ubuntu下编译通过
💻 M2I
字号:
#############################################################  -*- c -*-## generic include for XXX. Do not use directly.#### $Id: node-set.m2i,v 1.20 2004/10/15 00:45:05 rstory Exp $########################################################################@if $m2c_mark_boundary == 1@/** START code generated by $RCSfile: node-set.m2i,v $ $Revision: 1.20 $ */@end@############################################################################----------------------------------------------------------------------/** * Check that the proposed new value is potentially valid. * * @param rowreq_ctx *        Pointer to the row request context. * @param $m2c_node_param_val_name *        A $node.decl containing the new value.@    if $m2c_node_needlength == 1@ * @param $m2c_node_param_val_lname *        The size (in bytes) of the data pointed to by $m2c_node_param_val_name@    end@ * * @retval MFD_SUCCESS        : incoming value is legal * @retval MFD_NOT_VALID_NOW  : incoming value is not valid now * @retval MFD_NOT_VALID_EVER : incoming value is never valid * * This is the place to check for requirements that are not * expressed in the mib syntax (for example, a requirement that * is detailed in the description for an object). * * You should check that the requested change between the undo value and the * new value is legal (ie, the transistion from one value to another * is legal). *       *@note * This check is only to determine if the new value * is \b potentially valid. This is the first check of many, and * is one of the simplest ones. *  *@note * this is not the place to do any checks for values * which depend on some other value in the mib. Those * types of checks should be done in the * ${context}_check_dependencies() function. * * The following checks have already been done for you: *    The syntax is $node.type@if $node.enums == 1@ *    The value is one of $m2c_evals@elsif $node.ranges == 1@@    if ("$node.decl" eq "long") || ("$node.decl" eq "u_long")@@        eval $m2c_tmp_ns = "value"@@    else@@        eval $m2c_tmp_ns = "length"@@    end@ *    The $m2c_tmp_ns is in (one of) the range set(s): $m2c_evals@end@ * * If there a no other checks you need to do, simply return MFD_SUCCESS. *@  if $mfd_code_verbose == 1@@    if ("$node.decl" eq "long") || ("$node.decl" eq "u_long")@ * For example, an object with the syntax INTEGER(0..500) will * have already been checked for a value between 0 and 500. But * if the description also specifies that the value must be an * even number, you would enforce that requirement here. If and odd * numer is set, return MFD_NOT_VALID_EVER. If the description also * specified that changed must be made in single steps of 2, then a set * to change the value 10 to an even value other than 8 or 12 should * return MFD_NOT_VALID_NOW.@    else@ * For example, and object with the syntax DisplayString(0..40) * will have already been checked for a length between 0 and 40. * But if the description also specified that the value must * be all uppercase letters, you would enforce that requirement here * by returning MFD_NOT_VALID_EVER for a set containing lowercase * letters. If the description also specified that the value can not * change by more than one letter at a time, an attempt to change * "ABBY" to "ANNIE" should return MFD_NOT_VALID_NOW.@    end@ *@  end@ */int${node}_check_value( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_val){    DEBUGMSGTL(("verbose:${context}:${node}_check_value","called\n"));    /** should never get a NULL pointer */    netsnmp_assert(NULL != rowreq_ctx);@if $m2c_node_needlength == 1@    netsnmp_assert(NULL != $m2c_node_param_val_name);@end@    /*     * TODO:441:o: |-> Check for valid $node value.     */    return MFD_SUCCESS; /* $node value not illegal */} /* ${node}_check_value */##----------------------------------------------------------------------/** * Save old value information * * @param rowreq_ctx *        Pointer to the table context (${context}_rowreq_ctx) * * @retval MFD_SUCCESS : success * @retval MFD_ERROR   : error. set will fail. * * This function will be called after the table level undo setup function * ${context}_undo_setup has been called. * *@note * this function will only be called if a new value is set for this column. * * If there is any setup specific to a particular column (e.g. allocating * memory for a string), you should do that setup in this function, so it * won't be done unless it is necessary. */int${node}_undo_setup( ${context}_rowreq_ctx *rowreq_ctx){    DEBUGMSGTL(("verbose:${context}:${node}_undo_setup","called\n"));@ifconf syntax-$node.syntax-undo-setup.m2i@@    include syntax-$node.syntax-undo-setup.m2i@@else@    /** should never get a NULL pointer */    netsnmp_assert(NULL != rowreq_ctx);    /*     * TODO:455:o: |-> Setup $node undo.     */@   eval $m2c_ctx_lh = "${m2c_undo_item}${node}"@@   eval $m2c_ctx_lhs = "${m2c_undo_item}${node}_len"@@   eval $m2c_ctx_rh = "${m2c_data_item}${node}"@@   eval $m2c_ctx_rhs = "${m2c_data_item}${node}_len"@@   include generic-ctx-copy.m2i@@end@    return MFD_SUCCESS;} /* ${node}_undo_setup */##----------------------------------------------------------------------/** * Set the new value. *@if $m2c_node_set_comments ne ""@$m2c_node_set_comments*@end@ * @param rowreq_ctx *        Pointer to the users context. You should know how to *        manipulate the value from this object. * @param $m2c_node_param_val_name *        A $node.decl containing the new value.@    if $m2c_node_needlength == 1@ * @param $m2c_node_param_val_lname *        The size (in bytes) of the data pointed to by $m2c_node_param_val_name@    end@ */int${node}_set( ${context}_rowreq_ctx *rowreq_ctx, $m2c_node_param_val ){@ifconf syntax-$node.syntax-set.m2i@@    include syntax-$node.syntax-set.m2i@@else@    DEBUGMSGTL(("verbose:${context}:${node}_set","called\n"));    /** should never get a NULL pointer */    netsnmp_assert(NULL != rowreq_ctx);@if $m2c_node_needlength == 1@    netsnmp_assert(NULL != $m2c_node_param_val_name);@end@@    if $m2c_node_skip_mapping != 1@@        include generic-value-map-reverse.m2i@@    end@@    if ($node.enums != 1) || ("$node.perltype" ne "BITS")@@        include generic-ctx-set.m2i@@    end@ # ! enums & bits@end@ # no syntax include    return MFD_SUCCESS;} /* ${node}_set */##----------------------------------------------------------------------/** * undo the previous set. *@if $m2c_node_undo_comments ne ""@$m2c_node_undo_comments*@end@ * @param rowreq_ctx *        Pointer to the users context. */int${node}_undo( ${context}_rowreq_ctx *rowreq_ctx){@ifconf syntax-$node.syntax-undo.m2i@@    include syntax-$node.syntax-undo.m2i@@else@    DEBUGMSGTL(("verbose:${context}:${node}_undo","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    /*     * TODO:456:o: |-> Clean up $node undo.     */@   eval $m2c_ctx_rh = "${m2c_undo_item}${node}"@@   eval $m2c_ctx_rhs = "${m2c_undo_item}${node}_len"@@   eval $m2c_ctx_lh = "${m2c_data_item}${node}"@@   eval $m2c_ctx_lhs = "${m2c_data_item}${node}_len"@@   include generic-ctx-copy.m2i@@end@ # no syntax include        return MFD_SUCCESS;} /* ${node}_undo */##########################################################################@if $m2c_mark_boundary == 1@/** END code generated by $RCSfile: node-set.m2i,v $ $Revision: 1.20 $ */@end@

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -