diff --git a/src/core/store.c b/src/core/store.c
index 98b3a96d28ee6186518ba1f9bd5a16ef2a84e22f..345b5ea86bf2555c42961b4778ccb800743066b7 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
status = store_obj(NULL, hosts, SDB_HOST, cname, last_update, NULL);
pthread_rwlock_unlock(&host_lock);
+ if (sdb_plugin_store_host(name, last_update))
+ status = -1;
+
free(cname);
return status;
} /* sdb_store_host */
sdb_object_deref(SDB_OBJ(host));
pthread_rwlock_unlock(&host_lock);
+
+ if (sdb_plugin_store_attribute(hostname, key, value, last_update))
+ status = -1;
return status;
} /* sdb_store_attribute */
sdb_object_deref(SDB_OBJ(host));
pthread_rwlock_unlock(&host_lock);
+
+ if (sdb_plugin_store_service(hostname, name, last_update))
+ status = -1;
return status;
} /* sdb_store_service */
sdb_object_deref(SDB_OBJ(svc));
pthread_rwlock_unlock(&host_lock);
+
+ if (sdb_plugin_store_service_attribute(hostname, service,
+ key, value, last_update))
+ status = -1;
return status;
} /* sdb_store_service_attr */
status = -1;
}
pthread_rwlock_unlock(&host_lock);
+
+ if (sdb_plugin_store_metric(hostname, name, store, last_update))
+ status = -1;
return status;
} /* sdb_store_metric */
sdb_object_deref(SDB_OBJ(m));
pthread_rwlock_unlock(&host_lock);
+
+ if (sdb_plugin_store_metric_attribute(hostname, metric,
+ key, value, last_update))
+ status = -1;
return status;
} /* sdb_store_metric_attr */
sdb_store_scan(int type, sdb_store_matcher_t *m, sdb_store_matcher_t *filter,
sdb_store_lookup_cb cb, void *user_data)
{
- sdb_avltree_iter_t *host_iter;
+ sdb_avltree_iter_t *host_iter = NULL;
int status = 0;
if (! cb)
pthread_rwlock_rdlock(&host_lock);
- host_iter = sdb_avltree_get_iter(hosts);
- if (! host_iter)
- status = -1;
+ if (hosts) {
+ host_iter = sdb_avltree_get_iter(hosts);
+ if (! host_iter)
+ status = -1;
+ }
/* has_next returns false if the iterator is NULL */
while (sdb_avltree_iter_has_next(host_iter)) {