preprocessor"></span>NETSNMP_INLINE <a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a>    *
<a name="l00187"></a><a class="code" href="group__data__list.html#ga4036a7e291b29389229a6054111b6414">00187</a> <a class="code" href="group__data__list.html#ga4036a7e291b29389229a6054111b6414" title="returns a data_list node for a given name within a data_list">netsnmp_get_list_node</a>(<a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a> *head, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
<a name="l00188"></a>00188 {
<a name="l00189"></a>00189     <span class="keywordflow">if</span> (!name)
<a name="l00190"></a>00190         <span class="keywordflow">return</span> NULL;
<a name="l00191"></a>00191     <span class="keywordflow">for</span> (; head; head = head-&gt;next)
<a name="l00192"></a>00192         <span class="keywordflow">if</span> (head-&gt;name &amp;&amp; strcmp(head-&gt;name, name) == 0)
<a name="l00193"></a>00193             <span class="keywordflow">break</span>;
<a name="l00194"></a>00194     <span class="keywordflow">if</span> (head)
<a name="l00195"></a>00195         <span class="keywordflow">return</span> head;
<a name="l00196"></a>00196     <span class="keywordflow">return</span> NULL;
<a name="l00197"></a>00197 }
<a name="l00198"></a>00198 <span class="preprocessor">#endif </span><span class="comment">/* NETSNMP_FEATURE_REMOVE_DATA_LIST_GET_LIST_NODE */</span>
<a name="l00199"></a>00199 
<a name="l00205"></a>00205 <span class="keywordtype">int</span>
<a name="l00206"></a><a class="code" href="group__data__list.html#ga4f2be14561022e8ecf6dec0ee235c3aa">00206</a> <a class="code" href="group__data__list.html#ga4f2be14561022e8ecf6dec0ee235c3aa" title="Removes a named node from a data_list (and frees it)">netsnmp_remove_list_node</a>(<a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a> **realhead, <span class="keyword">const</span> <span class="keywordtype">char</span> *name)
<a name="l00207"></a>00207 {
<a name="l00208"></a>00208     <a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a> *head, *prev;
<a name="l00209"></a>00209     <span class="keywordflow">if</span> (!name)
<a name="l00210"></a>00210         <span class="keywordflow">return</span> 1;
<a name="l00211"></a>00211     <span class="keywordflow">for</span> (head = *realhead, prev = NULL; head;
<a name="l00212"></a>00212          prev = head, head = head-&gt;next) {
<a name="l00213"></a>00213         <span class="keywordflow">if</span> (head-&gt;name &amp;&amp; strcmp(head-&gt;name, name) == 0) {
<a name="l00214"></a>00214             <span class="keywordflow">if</span> (prev)
<a name="l00215"></a>00215                 prev-&gt;next = head-&gt;next;
<a name="l00216"></a>00216             <span class="keywordflow">else</span>
<a name="l00217"></a>00217                 *realhead = head-&gt;next;
<a name="l00218"></a>00218             netsnmp_free_list_data(head);
<a name="l00219"></a>00219             free(head);
<a name="l00220"></a>00220             <span class="keywordflow">return</span> 0;
<a name="l00221"></a>00221         }
<a name="l00222"></a>00222     }
<a name="l00223"></a>00223     <span class="keywordflow">return</span> 1;
<a name="l00224"></a>00224 }
<a name="l00225"></a>00225 
<a name="l00227"></a>00227 <span class="keyword">static</span> <a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a> *saveHead;
<a name="l00228"></a>00228 
<a name="l00238"></a>00238 <span class="keywordtype">void</span>
<a name="l00239"></a><a class="code" href="group__data__list.html#gaae024af17ff6958d67723b6017f09265">00239</a> <a class="code" href="group__data__list.html#gaae024af17ff6958d67723b6017f09265" title="registers to store a data_list set of data at persistent storage time">netsnmp_register_save_list</a>(<a class="code" href="structnetsnmp__data__list__s.html" title="used to iterate through lists of data">netsnmp_data_list</a> **datalist,
<a name="l00240"></a>00240                            <span class="keyword">const</span> <span class="keywordtype">char</span> *type, <span class="keyword">const</span> <span class="keywordtype">char</span> *token,
<a name="l00241"></a>00241                            Netsnmp_Save_List_Data *data_list_save_ptr,
<a name="l00242"></a>00242                            Netsnmp_Read_List_Data *data_list_read_ptr,
<a name="l00243"></a>00243                            Netsnmp_Free_List_Data *data_list_free_ptr) {
<a name="l00244"></a>00244     <a class="code" href="structnetsnmp__data__list__saveinfo__s.html">netsnmp_data_list_saveinfo</a> *info =
<a name="l00245"></a>00245         <a class="code" href="group__util.html#ga9cd013bb193de5048149afeb9d94e424" title="Mallocs memory of sizeof(t), zeros it and returns a pointer to it.">SNMP_MALLOC_TYPEDEF</a>(<a class="code" href="structnetsnmp__data__list__saveinfo__s.html">netsnmp_data_list_saveinfo</a>);
<a name="l00246"></a>00246 
<a name="l00247"></a>00247     <span class="keywordflow">if</span> (!info) {
<a name="l00248"></a>00248         <a class="code" href="group__snmp__logging.html#ga9ba905368ea1c551b969af44b13e37c2" title="This snmp logging function allows variable argument list given the specified format and priority...">snmp_log</a>(LOG_ERR, <span class="stringliteral">&quot;couldn&#39