############################################################# -*- c -*- ## generic include for XXX. Do not use directly. ## ######################################################################## @if $m2c_mark_boundary == 1@ /** START code generated by generic-table-indexes-from-oid.m2i */ @end@ ######################################################################## ## /** * extract ${context} indexes from a netsnmp_index * * @retval SNMP_ERR_NOERROR : no error * @retval SNMP_ERR_GENERR : error */ int ${context}_index_from_oid(netsnmp_index *oid_idx, ${context}_mib_index *mib_idx) { @include generic-table-indexes-varbind-setup.m2i@ DEBUGMSGTL(("verbose:${context}:${context}_index_from_oid","called\n")); /* * parse the oid into the individual index components */ err = parse_oid_indexes( oid_idx->oids, oid_idx->len, &var_$m2c_dii_first ); if (err == SNMP_ERR_NOERROR) { /* * copy out values */ @ eval $m2c_node_name = ""@ # purge node name to re-eval $m2c_node_var_name @ foreach $node index@ @ eval $m2c_node_var_name = "var_${node}."@ @ include m2c_setup_node.m2i@ @ if $m2c_node_needlength == 1@ /* * NOTE: val_len is in bytes, ${node}_len might not be */ if(var_${node}.val_len > sizeof(mib_idx->$node)) err = SNMP_ERR_GENERR; else { memcpy(mib_idx->${node}, var_${node}.val.string, var_${node}.val_len); mib_idx->${node}_len = var_${node}.val_len / sizeof(mib_idx->${node}[0]); } @ else@ mib_idx->$node = $m2c_node_var_val; @ end@ @ end@ # foreach @ eval $m2c_node_var_name = ""@ #reset custom name @ eval $m2c_node_name = ""@ # purge node name to re-eval $m2c_node_var_name } /* * parsing may have allocated memory. free it. */ snmp_reset_var_buffers( &var_$m2c_dii_first ); return err; } /* ${context}_index_from_oid */ ## ######################################################################## @if $m2c_mark_boundary == 1@ /** END code generated by generic-table-indexes-from-oid.m2i */ @end@