From 6c480283f000c7e8433d29742f98df1e6e666e63 Mon Sep 17 00:00:00 2001 From: Jan-Piet Mens Date: Wed, 9 Mar 2016 10:54:39 +0100 Subject: [PATCH] LWT are now stored with reltopic == 'lwt' instead of '*' closes #101 --- recorder.c | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/recorder.c b/recorder.c index 997a829..dd51a4e 100644 --- a/recorder.c +++ b/recorder.c @@ -697,8 +697,21 @@ void handle_message(void *userdata, char *topic, char *payload, size_t payloadle putrec(ud, now, reltopic, username, device, bindump(payload, payloadlen)); } goto cleanup; - case T_CMD: case T_LWT: + /* + * LWT gets a pseudo-reltopic called 'lwt'; reason: if we keep the + * empty original reltopic, it would become '*' in the .rec file + * which confuses the recorder when serving location data. + * Also, this appears to be sensible, and it probably should have + * been that way all along in the apps. + */ + + utstring_clear(reltopic); + utstring_printf(reltopic, "lwt"); + + /* Fall through */ + + case T_CMD: case T_STEPS: if (r_ok) { putrec(ud, now, reltopic, username, device, bindump(payload, payloadlen));