[collectd] [PATCH] utils_format_json: serialize nan and inf as null, as per JSON spec
Florian Forster
octo at verplant.org
Thu Feb 4 10:20:07 CET 2010
Hi Chris,
On Thu, Feb 04, 2010 at 12:52:30AM -0800, Chris Buben wrote:
> I'm deserializing JSON output from the write_http plugin using ruby-yajl.
> yajl was puking on the literal value nan encoded in the output.
thanks for your patch :) I think it's kind of weird that JSON doesn't
differentiate between -inf, inf and nan, but since that's what the
standard says, that's what we should be doing.
> - BUFFER_ADD ("%g", vl->values[i].gauge);
> + {
> + if(isnan(vl->values[i].gauge) || isinf(vl->values[i].gauge))
> + BUFFER_ADD ("null");
> + else
> + BUFFER_ADD ("%g", vl->values[i].gauge);
> + }
I'm a bit uncomfortable using "isinf" here. We've had a great deal of
trouble with "isnan". Since "isinf" isn't used anywhere else and the C99
standard says it is a macro, I'll change this to:
#ifdef isinf
if (isnan (value) || isinf (value))
#else
if (isnan (value))
#endif
Does this sound alright to you?
Regards,
-octo
--
Florian octo Forster
Hacker in training
GnuPG: 0x91523C3D
http://verplant.org/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
Url : http://mailman.verplant.org/pipermail/collectd/attachments/20100204/9a433675/attachment.pgp
More information about the collectd
mailing list