**/
#include "collectd.h"
+
#include "plugin.h"
#include "common.h"
-#include "configfile.h"
#include "utils_cache.h"
-#include <pthread.h>
-
#if HAVE_STDINT_H
# define MONGO_HAVE_STDINT 1
#else
#endif
#include <mongo.h>
+#if (MONGO_MAJOR == 0) && (MONGO_MINOR < 8)
+# define bson_alloc() bson_create()
+# define bson_dealloc(b) bson_dispose(b)
+#endif
+
struct wm_node_s
{
char name[DATA_MAX_NAME_LEN];
{
bson *ret;
gauge_t *rates;
- int i;
- ret = bson_create ();
+ ret = bson_alloc (); /* matched by bson_dealloc() */
if (ret == NULL)
{
ERROR ("write_mongodb plugin: bson_create failed.");
rates = NULL;
}
- bson_init (ret);
+ bson_init (ret); /* matched by bson_destroy() */
bson_append_date (ret, "time", (bson_date_t) CDTIME_T_TO_MS (vl->time));
bson_append_string (ret, "host", vl->host);
bson_append_string (ret, "plugin", vl->plugin);
bson_append_string (ret, "type_instance", vl->type_instance);
bson_append_start_array (ret, "values"); /* {{{ */
- for (i = 0; i < ds->ds_num; i++)
+ for (int i = 0; i < ds->ds_num; i++)
{
char key[16];
bson_append_finish_array (ret); /* }}} values */
bson_append_start_array (ret, "dstypes"); /* {{{ */
- for (i = 0; i < ds->ds_num; i++)
+ for (int i = 0; i < ds->ds_num; i++)
{
char key[16];
bson_append_finish_array (ret); /* }}} dstypes */
bson_append_start_array (ret, "dsnames"); /* {{{ */
- for (i = 0; i < ds->ds_num; i++)
+ for (int i = 0; i < ds->ds_num; i++)
{
char key[16];
pthread_mutex_unlock (&node->lock);
/* free our resource as not to leak memory */
- bson_dispose (bson_record);
+ bson_destroy (bson_record); /* matches bson_init() */
+ bson_dealloc (bson_record); /* matches bson_alloc() */
return (0);
} /* }}} int wm_write */
{
wm_node_t *node;
int status;
- int i;
- node = malloc (sizeof (*node));
+ node = calloc (1, sizeof (*node));
if (node == NULL)
return (ENOMEM);
- memset (node, 0, sizeof (*node));
mongo_init (node->conn);
node->host = NULL;
node->store_rates = 1;
return (status);
}
- for (i = 0; i < ci->children_num; i++)
+ for (int i = 0; i < ci->children_num; i++)
{
oconfig_item_t *child = ci->children + i;
static int wm_config (oconfig_item_t *ci) /* {{{ */
{
- int i;
-
- for (i = 0; i < ci->children_num; i++)
+ for (int i = 0; i < ci->children_num; i++)
{
oconfig_item_t *child = ci->children + i;