summaryrefslogtreecommitdiff
path: root/net-mgmt/net-snmp/files/patch-cache_handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'net-mgmt/net-snmp/files/patch-cache_handler.c')
-rw-r--r--net-mgmt/net-snmp/files/patch-cache_handler.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/net-mgmt/net-snmp/files/patch-cache_handler.c b/net-mgmt/net-snmp/files/patch-cache_handler.c
new file mode 100644
index 000000000000..0bcb75fb057b
--- /dev/null
+++ b/net-mgmt/net-snmp/files/patch-cache_handler.c
@@ -0,0 +1,34 @@
+--- agent/helpers/cache_handler.c.orig 2009-01-25 22:40:13.000000000 +0900
++++ agent/helpers/cache_handler.c 2009-01-25 22:44:30.000000000 +0900
+@@ -173,6 +173,31 @@
+ return cache;
+ }
+
++/** frees a cache
++ */
++int
++netsnmp_cache_free(netsnmp_cache *cache)
++{
++ netsnmp_cache *pos;
++
++ if (NULL == cache)
++ return SNMPERR_SUCCESS;
++
++ for (pos = cache_head; pos; pos = pos->next) {
++ if (pos == cache) {
++ snmp_log(LOG_WARNING, "not freeing cache (still in list)\n");
++ return SNMP_ERR_GENERR;
++ }
++ }
++
++ if (cache->rootoid)
++ free(cache->rootoid);
++
++ free(cache);
++
++ return SNMPERR_SUCCESS;
++}
++
+ /** callback function to call cache load function */
+ static void
+ _timer_reload(unsigned int regNo, void *clientargs)