X-Git-Url: http://wpitchoune.net/gitweb/?p=psensor-pkg-debian.git;a=blobdiff_plain;f=src%2Flib%2Fpsensor_json.c;h=14e69e0166cc039ca6f8410db4e870966aa68f97;hp=d97a620b30670afa40dcfbb1c1053b60c50fb807;hb=bd7036af56a4b61b2b473dccbeac5e26f78b57da;hpb=582a4101efc09e95899926f4415960733b72e18e diff --git a/src/lib/psensor_json.c b/src/lib/psensor_json.c index d97a620..14e69e0 100644 --- a/src/lib/psensor_json.c +++ b/src/lib/psensor_json.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010-2014 jeanfi@gmail.com + * Copyright (C) 2010-2016 jeanfi@gmail.com * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as @@ -19,6 +19,8 @@ #include #include +#include + #include "psensor_json.h" #include "url.h" @@ -78,9 +80,11 @@ static json_object *sensor_to_json(struct psensor *s) json_object_object_add(obj, ATT_SENSOR_TYPE, json_object_new_int(s->type)); json_object_object_add(obj, - ATT_SENSOR_MIN, json_object_new_double(s->min)); + ATT_SENSOR_MIN, + json_object_new_double(s->sess_lowest)); json_object_object_add(obj, - ATT_SENSOR_MAX, json_object_new_double(s->max)); + ATT_SENSOR_MAX, + json_object_new_double(s->sess_highest)); json_object_object_add(obj, ATT_SENSOR_MEASURES, measures_to_json_object(s)); @@ -115,14 +119,16 @@ char *sensors_to_json_string(struct psensor **sensors) char *str; json_object *obj = json_object_new_array(); - sensors_cur = sensors; + if (sensors) { + sensors_cur = sensors; - while (*sensors_cur) { - struct psensor *s = *sensors_cur; + while (*sensors_cur) { + struct psensor *s = *sensors_cur; - json_object_array_add(obj, sensor_to_json(s)); + json_object_array_add(obj, sensor_to_json(s)); - sensors_cur++; + sensors_cur++; + } } str = strdup(json_object_to_json_string(obj)); @@ -140,9 +146,9 @@ struct psensor *psensor_new_from_json(json_object *o, struct psensor *s; char *eid, *url; - oid = json_object_object_get(o, "id"); - oname = json_object_object_get(o, "name"); - otype = json_object_object_get(o, "type"); + json_object_object_get_ex(o, "id", &oid); + json_object_object_get_ex(o, "name", &oname); + json_object_object_get_ex(o, "type", &otype); eid = url_encode(json_object_get_string(oid)); url = malloc(strlen(sensors_url) + 1 + strlen(eid) + 1); @@ -153,7 +159,7 @@ struct psensor *psensor_new_from_json(json_object *o, NULL, json_object_get_int(otype) | SENSOR_TYPE_REMOTE, values_max_length); - s->url = url; + s->provider_data = url; free(eid);