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

📄 mfd-interface.m2c

📁 snmp的源代码,已经在我的ubuntu下编译通过
💻 M2C
📖 第 1 页 / 共 3 页
字号:
 */static int_mfd_${context}_check_dependencies(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    DEBUGMSGTL(("internal:${context}:_mfd_${context}_check_dependencies","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    rc = ${context}_check_dependencies(rowreq_ctx);    if(rc){        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_check_dependencies\n", rc));        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));    }    return SNMP_ERR_NOERROR;} /* _mfd_${context}_check_dependencies */@end@ // dependencies/*---------------------------------------------------------------------- * * SET: Undo setup * *---------------------------------------------------------------------*//* * @internal * Set the value for a particular column */NETSNMP_STATIC_INLINE int_${context}_undo_setup_column( ${context}_rowreq_ctx *rowreq_ctx, int column ){    int rc = SNMPERR_SUCCESS;        DEBUGMSGTL(("internal:${context}:_${context}_undo_setup_column","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    switch(column) {@   foreach $node nonindex@@      include m2c_setup_node.m2i@@      if $node.settable == 1@    /* $m2c_node_summary */    case COLUMN_$node.uc:        rowreq_ctx->column_set_flags |= FLAG_$node.uc;        rc = ${node}_undo_setup(rowreq_ctx );        break; @      end@ # settable@   end@ # for each column     default:         snmp_log(LOG_ERR,"unknown column %d in _${context}_undo_setup_column\n", column);         break;    }    return rc;} /* _${context}_undo_setup_column */##----------------------------------------------------------------------/** * @internal * undo setup */int_mfd_${context}_undo_setup(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_setup","called\n"));    netsnmp_assert(NULL != rowreq_ctx);@if $m2c_undo_embed == 0@    /*     * allocate undo context     */    rowreq_ctx->undo = ${context}_allocate_data();    if(NULL == rowreq_ctx->undo) {        /** msg already logged */        netsnmp_request_set_error_all(requests, SNMP_ERR_RESOURCEUNAVAILABLE);        return SNMP_ERR_NOERROR;    }@end@    /*     * row undo setup     */    rowreq_ctx->column_set_flags = 0;    rc = ${context}_undo_setup(rowreq_ctx);    if (MFD_SUCCESS != rc)  {        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_undo_setup\n", rc));        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));    }    else {        /*         * column undo setup         */        netsnmp_table_request_info * tri;        for(;requests; requests = requests->next) {            /*             * set column data             */            tri = netsnmp_extract_table_info(requests);            if(NULL == tri)                continue;                        rc = _${context}_undo_setup_column(rowreq_ctx, tri->colnum);            if(MFD_SUCCESS != rc)  {                DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                            "${context}_undo_setup_column\n", rc));                netsnmp_set_request_error(agtreq_info, requests, SNMP_VALIDATE_ERR(rc));            }        } /* for results */    }        return SNMP_ERR_NOERROR;} /* _mfd_${context}_undo_setup *//** * @internal * undo setup */int_mfd_${context}_undo_cleanup(netsnmp_mib_handler *handler,                             netsnmp_handler_registration *reginfo,                             netsnmp_agent_request_info *agtreq_info,                             netsnmp_request_info *requests){    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    int rc;    DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_cleanup","called\n"));    /*     * failed row create in early stages has no rowreq_ctx     */    if (NULL == rowreq_ctx)        return MFD_SUCCESS;    /*     * call user cleanup     */    rc = ${context}_undo_cleanup(rowreq_ctx);    if (MFD_SUCCESS != rc) {        /*         * nothing we can do about it but log it         */        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_undo_cleanup\n", rc));    }@if $m2c_undo_embed == 0@    /*     * release undo context, if needed     */    if(rowreq_ctx->undo) {         ${context}_release_data(rowreq_ctx->undo);         rowreq_ctx->undo = NULL;    }@end@    /*     * clear set flags     */    rowreq_ctx->column_set_flags = 0;    return SNMP_ERR_NOERROR;} /* _mfd_${context}_undo_cleanup *//*---------------------------------------------------------------------- * * SET: Set values * *---------------------------------------------------------------------*//* * @internal * Set the value for a particular column */NETSNMP_STATIC_INLINE int_${context}_set_column( ${context}_rowreq_ctx *rowreq_ctx,                       netsnmp_variable_list *var, int column ){    int rc = SNMPERR_SUCCESS;        DEBUGMSGTL(("internal:${context}:_${context}_set_column","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    switch(column) {@   foreach $node nonindex@@      include m2c_setup_node.m2i@@      if $node.settable == 1@    /* $m2c_node_summary */    case COLUMN_$node.uc:@         if $m2c_node_needlength == 0@        if(var->val_len != sizeof($m2c_decl)) {            rc = SNMP_ERR_WRONGLENGTH;            snmp_log(LOG_ERR,                     "varbind size of %d does not match expected size %d\n",                     var->val_len, sizeof($m2c_decl));            break;        }@         end@        rowreq_ctx->column_set_flags |= FLAG_$node.uc;        rc = ${node}_set(rowreq_ctx, $m2c_node_var_val );        break; @      end@ # settable@   end@ # for each column     default:         snmp_log(LOG_ERR,"unknown column %d in _${context}_set_column\n", column);         break;    }        return rc;} /* _${context}_set_column */##########################################################################int_mfd_${context}_set_values(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    netsnmp_table_request_info * tri;    int                          rc = SNMP_ERR_NOERROR;    DEBUGMSGTL(("internal:${context}:_mfd_${context}_set_values","called\n"));    netsnmp_assert(NULL != rowreq_ctx);        rowreq_ctx->column_set_flags = 0;    for(;requests; requests = requests->next) {        /*         * set column data         */        tri = netsnmp_extract_table_info(requests);        if(NULL == tri)            continue;                rc = _${context}_set_column(rowreq_ctx,                                    requests->requestvb, tri->colnum);        if(MFD_SUCCESS != rc)  {            DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                        "${context}_set_column\n", rc));            netsnmp_set_request_error(agtreq_info, requests, SNMP_VALIDATE_ERR(rc));        }    } /* for results */    return SNMP_ERR_NOERROR;} /* _mfd_${context}_set_values *//*---------------------------------------------------------------------- * * SET: commit * *---------------------------------------------------------------------*//** * @internal * commit the values */int_mfd_${context}_commit(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    DEBUGMSGTL(("internal:${context}:_mfd_${context}_commit","called\n"));    netsnmp_assert(NULL != rowreq_ctx);        rc = ${context}_commit(rowreq_ctx);    if (MFD_SUCCESS != rc) {        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_commit\n", rc));        netsnmp_request_set_error_all(requests, SNMP_VALIDATE_ERR(rc));    }    return SNMP_ERR_NOERROR;}int_mfd_${context}_undo_commit(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_commit","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    rc = ${context}_undo_commit(rowreq_ctx);    if (MFD_SUCCESS != rc) {        /*         * nothing we can do about it but log it         */        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_undo_commit\n", rc));    }    return SNMP_ERR_NOERROR;} /* _mfd_${context}_commit *//*---------------------------------------------------------------------- * * SET: Undo * *---------------------------------------------------------------------*//** * @internal * undo the value for a particular column */NETSNMP_STATIC_INLINE int_${context}_undo_column( ${context}_rowreq_ctx *rowreq_ctx,                       netsnmp_variable_list *var, int column ){    int rc = SNMPERR_SUCCESS;        DEBUGMSGTL(("internal:${context}:_${context}_undo_column","called\n"));    netsnmp_assert(NULL != rowreq_ctx);    switch(column) {@   foreach $node nonindex@@      include m2c_setup_node.m2i@@      if $node.settable == 1@    /* $m2c_node_summary */    case COLUMN_$node.uc:        rc = ${node}_undo(rowreq_ctx);        break; @      end@ # settable@   end@ # for each column     default:         snmp_log(LOG_ERR,"unknown column %d in _${context}_undo_column\n", column);         break;    }    return rc;} /* _${context}_undo_column */##########################################################################int_mfd_${context}_undo_values(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);    netsnmp_table_request_info * tri;    DEBUGMSGTL(("internal:${context}:_mfd_${context}_undo_values","called\n"));    netsnmp_assert(NULL != rowreq_ctx);        for(;requests; requests = requests->next) {        /*         * set column data         */        tri = netsnmp_extract_table_info(requests);        if(NULL == tri)            continue;                rc = _${context}_undo_column(rowreq_ctx, requests->requestvb,                                     tri->colnum);        if (MFD_SUCCESS != rc) {            /*             * nothing we can do about it but log it             */            DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                        "${context}_undo_column\n", rc));        }    } /* for results */    return SNMP_ERR_NOERROR;} /* _mfd_${context}_undo_values */@   if $m2c_irreversible_commit == 1@/*---------------------------------------------------------------------- * * SET: irreversible commit * *---------------------------------------------------------------------*//** * @internal * commit irreversible actions */int_mfd_${context}_irreversible_commit(netsnmp_mib_handler *handler,                         netsnmp_handler_registration *reginfo,                         netsnmp_agent_request_info *agtreq_info,                         netsnmp_request_info *requests){    int                    rc;    ${context}_rowreq_ctx *rowreq_ctx =                  netsnmp_container_table_row_extract(requests);        DEBUGMSGTL(("internal:${context}:_mfd_${context}_irreversible:commit","called\n"));       netsnmp_assert(NULL != rowreq_ctx);        rc = ${context}_irreversible_commit(rowreq_ctx);    if (MFD_SUCCESS != rc) {        netsnmp_request_set_error_all(requests, SNMP_ERR_COMMITFAILED);        DEBUGMSGTL(("verbose:${context}:mfd","error %d from "                    "${context}_irreversible_commit\n", rc));    }        return SNMP_ERR_NOERROR;} /* _mfd_${context}_irreversible_commit */@end@@end@ # settable/*********************************************************************** * * DATA ACCESS * ***********************************************************************/@    include mfd-access-${m2c_table_access}-defines.m2i@@end@ # foreach table##########################################################################@if $m2c_mark_boundary == 1@/** END code generated by $RCSfile: mfd-interface.m2c,v $ $Revision: 1.43.2.2 $ */@end@

⌨️ 快捷键说明

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