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

Reply via email to