#############################################################  -*- c -*-
## generic include for XXX. Do not use directly.
##
## $Id: generic-table-indexes-to-oid.m2i,v 1.7 2004/10/08 23:39:17 rstory Exp $
########################################################################
@if $m2c_mark_boundary == 1@
/** START code generated by $RCSfile: generic-table-indexes-to-oid.m2i,v $ $Revision: 1.7 $ */
@end@
########################################################################
##
/**
 * @internal
 * convert the index component stored in the context to an oid
 */
int
${context}_index_to_oid(netsnmp_index *oid_idx,
                         ${context}_mib_index *mib_idx)
{
@include generic-table-indexes-varbind-setup.m2i@

    DEBUGMSGTL(("verbose:${context}:${context}_index_to_oid","called\n"));

@    foreach $node index@
@        include m2c_setup_node.m2i@
        /* $m2c_node_summary */
@        if $m2c_node_needlength == 1@
    snmp_set_var_value(&var_$node, (u_char*)&mib_idx->$node,
                       mib_idx->${node}_len * sizeof(mib_idx->${node}[0]));
@        else@
    snmp_set_var_value(&var_$node, (u_char*)&mib_idx->$node,
                       sizeof(mib_idx->$node));
@        end@

@    end@ # for each column

    err = build_oid_noalloc(oid_idx->oids, oid_idx->len, &oid_idx->len,
                           NULL, 0, &var_$m2c_dii_first);
    if(err)
        snmp_log(LOG_ERR,"error %d converting index to oid\n");

    /*
     * parsing may have allocated memory. free it.
     */
    snmp_reset_var_buffers( &var_$m2c_dii_first );

    return err;
} /* ${context}_index_to_oid */

##
########################################################################
@if $m2c_mark_boundary == 1@
/** END code generated by $RCSfile: generic-table-indexes-to-oid.m2i,v $ $Revision: 1.7 $ */
@end@
