diff options
author | Eric S. Raymond <esr@thyrsus.com> | 2011-03-24 07:19:29 -0400 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 2011-03-24 07:19:29 -0400 |
commit | c22f945bab851e460443989d04f60b81a0573f0c (patch) | |
tree | c9989f9f703a8410dc810bf3420d40904caa4d27 /shared_json.c | |
parent | 59a7492ebc2452a50cd9655c03818a53ff2372ef (diff) | |
download | gpsd-c22f945bab851e460443989d04f60b81a0573f0c.tar.gz |
DEVICE::activated becomes an ISO8601 timestamp.
Diffstat (limited to 'shared_json.c')
-rw-r--r-- | shared_json.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/shared_json.c b/shared_json.c index b20a184e..b685b8cc 100644 --- a/shared_json.c +++ b/shared_json.c @@ -25,6 +25,7 @@ int json_device_read(const char *buf, /*@out@*/ struct devconfig_t *dev, /*@null@*/ const char **endptr) { + char tbuf[JSON_DATE_MAX+1]; /*@ -fullinitblock @*/ /* *INDENT-OFF* */ const struct json_attr_t json_attrs_device[] = { @@ -32,6 +33,8 @@ int json_device_read(const char *buf, {"path", t_string, .addr.string = dev->path, .len = sizeof(dev->path)}, + {"activated", t_string, .addr.string = tbuf, + .len = sizeof(tbuf)}, {"activated", t_real, .addr.real = &dev->activated}, {"flags", t_integer, .addr.integer = &dev->flags}, {"driver", t_string, .addr.string = dev->driver, @@ -60,6 +63,15 @@ int json_device_read(const char *buf, if (status != 0) return status; + /*@-usedef@*/ + if (isnan(dev->activated)!=0) { + if (tbuf[0] == '\0') + dev->activated = NAN; + else + dev->activated = iso8601_to_unix(tbuf); + } + /*@+usedef@*/ + return 0; } |