Code Search for Developers
 
 
  

check__varbind_8c-source.html from net-snmp at Krugle


Show check__varbind_8c-source.html syntax highlighted

<!--#set var="section" value="development" -->
<!--#include virtual="/page-top.html" -->
<!-- CONTENT START -->
  <!-- Generated by Doxygen 1.3.9.1 -->

  <div class="qindex">
    <a class="qindex" href="index.html">Main&nbsp;Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class=
    "qindex" href="annotated.html">Data&nbsp;Structures</a> | <a class="qindex" href="files.html">File&nbsp;List</a> | <a class=
    "qindex" href="functions.html">Data&nbsp;Fields</a> | <a class="qindex" href="pages.html">Related&nbsp;Pages</a> | <a class=
    "qindex" href="examples.html">Examples</a>
  </div>

  <div class="nav">
    <a class="el" href="dir_000005.html">snmplib</a>
  </div>

  <h1>check_varbind.c</h1>

  <div class="fragment">
    <pre class="fragment">
00001 <span class="preprocessor">#include &lt;net-snmp/net-snmp-config.h&gt;</span>
00002 
00003 <span class="preprocessor">#include &lt;net-snmp/net-snmp-includes.h&gt;</span>
00004 
00005 <span class="preprocessor">#include &lt;net-snmp/library/check_varbind.h&gt;</span>
00006 
00007 NETSNMP_INLINE <span class="keywordtype">int</span>
00008 netsnmp_check_vb_type(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, <span class="keywordtype">int</span> type )
00009 {
00010     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00011 
00012     <span class="keywordflow">if</span> (NULL == var)
00013         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00014     
00015     <span class="keywordflow">if</span> (var-&gt;<a class="code" href="structvariable__list.html#o3">type</a> != type) {
00016         rc = SNMP_ERR_WRONGTYPE;
00017     }
00018 
00019     <span class="keywordflow">return</span> rc;
00020 }
00021 
00022 NETSNMP_INLINE <span class="keywordtype">int</span>
00023 netsnmp_check_vb_size(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, size_t size )
00024 {
00025     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00026 
00027     <span class="keywordflow">if</span> (NULL == var)
00028         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00029     
00030     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var-&gt;<a class="code" href=
"structvariable__list.html#o5">val_len</a> != size) {
00031         rc = SNMP_ERR_WRONGLENGTH;
00032     }
00033 
00034     <span class="keywordflow">return</span> rc;
00035 }
00036 
00037 NETSNMP_INLINE <span class="keywordtype">int</span>
00038 netsnmp_check_vb_max_size(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, size_t size )
00039 {
00040     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00041 
00042     <span class="keywordflow">if</span> (NULL == var)
00043         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00044     
00045     <span class="keywordflow">else</span> <span class="keywordflow">if</span> (var-&gt;<a class="code" href=
"structvariable__list.html#o5">val_len</a> &gt; size) {
00046         rc = SNMP_ERR_WRONGLENGTH;
00047     }
00048 
00049     <span class="keywordflow">return</span> rc;
00050 }
00051 
00052 NETSNMP_INLINE <span class="keywordtype">int</span>
00053 netsnmp_check_vb_range(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var,
00054                        size_t low, size_t high )
00055 {
00056     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00057 
00058     <span class="keywordflow">if</span> (NULL == var)
00059         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00060     
00061     <span class="keywordflow">if</span> ((*var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer &lt; low) || (*var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer &gt; high)) {
00062         rc = SNMP_ERR_WRONGVALUE;
00063     }
00064 
00065     <span class="keywordflow">return</span> rc;
00066 }
00067 
00068 NETSNMP_INLINE <span class="keywordtype">int</span>
00069 netsnmp_check_vb_size_range(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var,
00070                             size_t low, size_t high )
00071 {
00072     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00073 
00074     <span class="keywordflow">if</span> (NULL == var)
00075         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00076     
00077     <span class="keywordflow">if</span> ((var-&gt;<a class="code" href=
"structvariable__list.html#o5">val_len</a> &lt; low) || (var-&gt;<a class="code" href=
"structvariable__list.html#o5">val_len</a> &gt; high)) {
00078         rc = SNMP_ERR_WRONGLENGTH;
00079     }
00080 
00081     <span class="keywordflow">return</span> rc;
00082 }
00083 
00084 NETSNMP_INLINE <span class="keywordtype">int</span>
00085 netsnmp_check_vb_type_and_size(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var,
00086                                <span class="keywordtype">int</span> type, size_t size)
00087 {
00088     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00089 
00090     <span class="keywordflow">if</span> (NULL == var)
00091         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00092     
00093     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type(var,type)))
00094         ;
00095     <span class="keywordflow">else</span>
00096         rc = netsnmp_check_vb_size(var, size);
00097 
00098     <span class="keywordflow">return</span> rc;
00099 }
00100 
00101 NETSNMP_INLINE <span class="keywordtype">int</span>
00102 netsnmp_check_vb_type_and_max_size(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var,
00103                                <span class="keywordtype">int</span> type, size_t size)
00104 {
00105     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00106 
00107     <span class="keywordflow">if</span> (NULL == var)
00108         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00109     
00110     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type(var,type)))
00111         ;
00112     <span class="keywordflow">else</span>
00113         rc = netsnmp_check_vb_max_size(var, size);
00114 
00115     <span class="keywordflow">return</span> rc;
00116 }
00117 
00118 NETSNMP_INLINE <span class="keywordtype">int</span>
00119 netsnmp_check_vb_oid(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var)
00120 {
00121     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00122 
00123     <span class="keywordflow">if</span> (NULL == var)
00124         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00125     
00126     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type(var,ASN_OBJECT_ID)))
00127         ;
00128     <span class="keywordflow">else</span>
00129         rc = netsnmp_check_vb_max_size(var, MAX_OID_LEN*<span class="keyword">sizeof</span>(oid));
00130 
00131     <span class="keywordflow">return</span> rc;
00132 }
00133 
00134 NETSNMP_INLINE <span class="keywordtype">int</span>
00135 netsnmp_check_vb_int(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var)
00136 {
00137     <span class="keywordflow">if</span> (NULL == var)
00138         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00139     
00140     <span class="keywordflow">return</span> netsnmp_check_vb_type_and_size(var, ASN_INTEGER, <span class=
"keyword">sizeof</span>(<span class="keywordtype">long</span>));
00141 }
00142 
00143 NETSNMP_INLINE <span class="keywordtype">int</span>
00144 netsnmp_check_vb_uint(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var)
00145 {
00146     <span class="keywordflow">if</span> (NULL == var)
00147         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00148     
00149     <span class="keywordflow">return</span> netsnmp_check_vb_type_and_size(var, ASN_UNSIGNED, <span class=
"keyword">sizeof</span>(<span class="keywordtype">long</span>));
00150 }
00151 
00152 NETSNMP_INLINE <span class="keywordtype">int</span>
00153 netsnmp_check_vb_int_range(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, <span class="keywordtype">int</span> low, <span class=
"keywordtype">int</span> high)
00154 {
00155     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00156     
00157     <span class="keywordflow">if</span> (NULL == var)
00158         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00159     
00160     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type_and_size(var, ASN_INTEGER, <span class=
"keyword">sizeof</span>(<span class="keywordtype">long</span>))))
00161         <span class="keywordflow">return</span> rc;
00162     
00163     <span class="keywordflow">if</span> ((*var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer &lt; low) || (*var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer &gt; high)) {
00164         rc = SNMP_ERR_WRONGVALUE;
00165     }
00166 
00167     <span class="keywordflow">return</span> rc;
00168 }
00169 
00170 <span class="keywordtype">int</span>
00171 netsnmp_check_vb_truthvalue(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var)
00172 {
00173     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00174     
00175     <span class="keywordflow">if</span> (NULL == var)
00176         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00177     
00178     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type_and_size(var, ASN_INTEGER, <span class=
"keyword">sizeof</span>(<span class="keywordtype">int</span>))))
00179         <span class="keywordflow">return</span> rc;
00180     
00181     <span class="keywordflow">return</span> netsnmp_check_vb_int_range(var, 1, 2);
00182 }
00183 
00184 NETSNMP_INLINE <span class="keywordtype">int</span>
00185 netsnmp_check_vb_rowstatus_value(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var)
00186 {
00187     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00188 
00189     <span class="keywordflow">if</span> (NULL == var)
00190         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00191     
00192     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type_and_size(var, ASN_INTEGER, <span class=
"keyword">sizeof</span>(<span class="keywordtype">int</span>))))
00193         <span class="keywordflow">return</span> rc;
00194     
00195     <span class="keywordflow">if</span> (*var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer == RS_NOTREADY)
00196         <span class="keywordflow">return</span> SNMP_ERR_WRONGVALUE;
00197 
00198     <span class="keywordflow">return</span> netsnmp_check_vb_int_range(var, SNMP_ROW_NONEXISTENT,
00199                                       SNMP_ROW_DESTROY);
00200 }
00201 
00202 <span class="keywordtype">int</span>
00203 netsnmp_check_vb_rowstatus(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, <span class="keywordtype">int</span> old_value)
00204 {
00205     <span class="keyword">register</span> <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00206 
00207     <span class="keywordflow">if</span> (NULL == var)
00208         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00209     
00210     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_rowstatus_value(var)))
00211         <span class="keywordflow">return</span> rc;
00212 
00213     <span class="keywordflow">return</span> check_rowstatus_transition(old_value, *var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer);
00214 }
00215 
00216 <span class="keywordtype">int</span>
00217 netsnmp_check_vb_storagetype(<span class="keyword">const</span> <a class="code" href=
"structvariable__list.html">netsnmp_variable_list</a> *var, <span class="keywordtype">int</span> old_value)
00218 {
00219     <span class="keywordtype">int</span> rc = SNMP_ERR_NOERROR;
00220 
00221     <span class="keywordflow">if</span> (NULL == var)
00222         <span class="keywordflow">return</span> SNMP_ERR_GENERR;
00223     
00224     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_type_and_size(var, ASN_INTEGER, <span class=
"keyword">sizeof</span>(<span class="keywordtype">int</span>))))
00225         <span class="keywordflow">return</span> rc;
00226     
00227     <span class="keywordflow">if</span> ((rc = netsnmp_check_vb_int_range(var, SNMP_STORAGE_NONE,
00228                                         SNMP_STORAGE_READONLY)))
00229         <span class="keywordflow">return</span> rc;
00230         
00231     <span class="keywordflow">return</span> check_storage_transition(old_value, *var-&gt;<a class="code" href=
"structvariable__list.html#o4">val</a>.integer);
00232 }
</pre>
  </div>
  <hr size="1" />

  <address style="align: right;">
    <small>Generated on Fri Dec 30 13:47:44 2005 for net-snmp by&nbsp; <a href="http://www.doxygen.org/index.html"><img src=
    "doxygen.png" alt="doxygen" align="middle" border="0" /></a> 1.3.9.1</small>
  </address>
<!-- CONTENT END -->
<!--#include virtual="/page-bottom.html" -->





See more files for this project here

net-snmp

net-snmp provides tools and libraries relating to the Simple Network\r\nManagement Protocol including: An extensible agent, An SNMP library,\r\ntools to request or set information from SNMP agents, tools to\r\ngenerate and handle SNMP traps, etc.\r\n

Project homepage: http://sourceforge.net/projects/net-snmp
Programming language(s): C,Perl,Shell Script
License: other

  mfd/
  acconfig_8h-source.html
  acconfig_8h.html
  agent_2snmp__perl_8c-source.html
  agent__callbacks_8h-source.html
  agent__callbacks_8h.html
  agent__handler_8c-source.html
  agent__handler_8c.html
  agent__handler_8h-source.html
  agent__handler_8h.html
  agent__index_8c-source.html
  agent__index_8c.html
  agent__index_8h-source.html
  agent__index_8h.html
  agent__module__config_8h-source.html
  agent__read__config_8c-source.html
  agent__read__config_8c.html
  agent__read__config_8h-source.html
  agent__read__config_8h.html
  agent__registry_8c-source.html
  agent__registry_8c.html
  agent__registry_8h-source.html
  agent__registry_8h.html
  agent__trap_8c-source.html
  agent__trap_8c.html
  agent__trap_8h-source.html
  agent__trap_8h.html
  all__helpers_8c-source.html
  all__helpers_8h-source.html
  annotated.html
  asn1_8c-source.html
  asn1_8h-source.html
  auto__nlist_8c-source.html
  auto__nlist_8c.html
  auto__nlist_8h-source.html
  auto__nlist_8h.html
  autonlist_8h-source.html
  autonlist_8h.html
  baby__steps_8c-source.html
  baby__steps_8h-source.html
  blah.html
  bulk__to__next_8c-source.html
  bulk__to__next_8h-source.html
  cache__handler_8c-source.html
  cache__handler_8h-source.html
  callback_8c-source.html
  callback_8h-source.html
  check__varbind_8c-source.html
  check__varbind_8h-source.html
  cmu__compat_8c-source.html
  cmu__compat_8h-source.html
  config_8h-source.html
  config_8h.html
  config__api_8h-source.html
  container_8c-source.html
  container_8h-source.html
  container__binary__array_8c-source.html
  container__binary__array_8h-source.html
  container__iterator_8c-source.html
  container__iterator_8h-source.html
  container__list__ssll_8c-source.html
  container__list__ssll_8h-source.html
  container__null_8c-source.html
  container__null_8h-source.html
  data__list_8c-source.html
  data__list_8h-source.html
  data__set_8c-example.html
  data__set_8c-source.html
  data__set_8h-source.html
  debug__handler_8c-source.html
  debug__handler_8h-source.html
  default__store_8c-source.html
  default__store_8h-source.html
  default_store.html
  definitions_8h-source.html
  delayed__instance_8c-example.html
  delayed__instance_8c-source.html
  delayed__instance_8h-source.html
  deprecated.html
  dir_000000.html
  dir_000001.html
  dir_000002.html
  dir_000003.html
  dir_000004.html
  dir_000005.html
  dir_000006.html
  dir_000007.html
  dir_000008.html
  doxygen.css
  doxygen.gif
  doxygen.png
  ds__agent_8h-source.html
  ds__agent_8h.html
  example_8c-source.html
  example_8h-source.html
  examples.html
  factory_8h-source.html
  fd__event__manager_8c-source.html
  fd__event__manager_8h-source.html
  file__utils_8c-source.html
  file__utils_8h-source.html
  files.html