W dniu 04.07.2011 10:54, Johan Bergström pisze:
Hello!
There's some api changes in YAJL 2.0.x that breaks collectd 5.0.0 and latest
master from git:
Arch Linux carries a patch (attached) that looks relevant.
Best regards,
Grzegorz Nosek
--- src/curl_json.c 2011-04-25 20:43:00.972938855 -0400
+++ src/curl_json.c 2011-04-25 20:46:03.859938860 -0400
@@ -98,8 +98,7 @@
return (0);
status = yajl_parse(db->yajl, (unsigned char *)buf, len);
- if ((status != yajl_status_ok)
- && (status != yajl_status_insufficient_data))
+ if ((status != yajl_status_ok))
{
unsigned char *msg =
yajl_get_error(db->yajl, /* verbose = */ 1,
@@ -130,7 +129,7 @@
/* "number" may not be null terminated, so copy it into a buffer before
* parsing. */
static int cj_cb_number (void *ctx,
- const char *number, unsigned int number_len)
+ const char *number, size_t number_len)
{
char buffer[number_len + 1];
@@ -159,7 +158,7 @@
} /* int cj_cb_number */
static int cj_cb_map_key (void *ctx, const unsigned char *val,
- unsigned int len)
+ size_t len)
{
cj_t *db = (cj_t *)ctx;
c_avl_tree_t *tree;
@@ -187,7 +186,7 @@
}
static int cj_cb_string (void *ctx, const unsigned char *val,
- unsigned int len)
+ size_t len)
{
cj_t *db = (cj_t *)ctx;
char str[len + 1];
@@ -697,7 +696,7 @@
char *url;
yajl_handle yprev = db->yajl;
- db->yajl = yajl_alloc (&ycallbacks, NULL, NULL, (void *)db);
+ db->yajl = yajl_alloc (&ycallbacks, NULL, (void *)db);
if (db->yajl == NULL)
{
ERROR ("curl_json plugin: yajl_alloc failed.");
@@ -730,7 +729,7 @@
return (-1);
}
- status = yajl_parse_complete (db->yajl);
+ status = yajl_complete_parse (db->yajl);
if (status != yajl_status_ok)
{
unsigned char *errmsg;
_______________________________________________
collectd mailing list
collectd@verplant.org
http://mailman.verplant.org/listinfo/collectd