generic-table-indexes-from-oid.m2i
上传用户:wxp200602
上传日期:2007-10-30
资源大小:4028k
文件大小:2k
源码类别:

SNMP编程

开发平台:

Unix_Linux

  1. #############################################################  -*- c -*-
  2. ## generic include for XXX. Do not use directly.
  3. ##
  4. ## $Id: generic-table-indexes-from-oid.m2i,v 1.8 2004/10/08 23:39:17 rstory Exp $
  5. ########################################################################
  6. @if $m2c_mark_boundary == 1@
  7. /** START code generated by $RCSfile: generic-table-indexes-from-oid.m2i,v $ $Revision: 1.8 $ */
  8. @end@
  9. ########################################################################
  10. ##
  11. /**
  12.  * extract ${context} indexes from a netsnmp_index
  13.  *
  14.  * @retval SNMP_ERR_NOERROR  : no error
  15.  * @retval SNMP_ERR_GENERR   : error
  16.  */
  17. int
  18. ${context}_index_from_oid(netsnmp_index *oid_idx,
  19.                          ${context}_mib_index *mib_idx)
  20. {
  21. @include generic-table-indexes-varbind-setup.m2i@
  22.     DEBUGMSGTL(("verbose:${context}:${context}_index_from_oid","calledn"));
  23.     /*
  24.      * parse the oid into the individual index components
  25.      */
  26.     err = parse_oid_indexes( oid_idx->oids, oid_idx->len,
  27.                              &var_$m2c_dii_first );
  28.     if (err == SNMP_ERR_NOERROR) {
  29.         /*
  30.          * copy out values
  31.          */
  32. @    eval $m2c_node_name = ""@ # purge node name to re-eval $m2c_node_var_name
  33. @    foreach $node index@
  34. @        eval $m2c_node_var_name = "var_${node}."@
  35. @        include m2c_setup_node.m2i@
  36. @        if $m2c_node_needlength == 1@
  37.     /*
  38.      * NOTE: val_len is in bytes, ${node}_len might not be
  39.      */
  40.          if(var_${node}.val_len > sizeof(mib_idx->$node))
  41.              err = SNMP_ERR_GENERR;
  42.          else {
  43.              memcpy(mib_idx->${node}, var_${node}.val.string, var_${node}.val_len);
  44.              mib_idx->${node}_len = var_${node}.val_len / sizeof(mib_idx->${node}[0]);
  45.          }
  46. @        else@
  47.     mib_idx->$node = $m2c_node_var_val;
  48. @        end@
  49. @    end@ # foreach
  50. @    eval $m2c_node_var_name = ""@ #reset custom name
  51. @    eval $m2c_node_name = ""@ # purge node name to re-eval $m2c_node_var_name
  52.     }
  53.     /*
  54.      * parsing may have allocated memory. free it.
  55.      */
  56.     snmp_reset_var_buffers( &var_$m2c_dii_first );
  57.     return err;
  58. } /* ${context}_index_from_oid */
  59. ##
  60. ########################################################################
  61. @if $m2c_mark_boundary == 1@
  62. /** END code generated by $RCSfile: generic-table-indexes-from-oid.m2i,v $ $Revision: 1.8 $ */
  63. @end@