Look up the timezone when an entry is recorded and store it

With big rec files, lookup might be incredibly slow because the timezone will be looked up for every entry.
Like this, timezone is recorded once when an entry is created and doesn't have to be looked up later
This commit is contained in:
Jeremias Stotter
2026-01-10 22:25:17 +01:00
parent c4c6b52bee
commit f856975f05
2 changed files with 15 additions and 2 deletions

View File

@@ -55,7 +55,10 @@
#endif
#include "version.h"
#include <dirent.h>
#ifdef WITH_TZ
# include "zonedetect.h"
extern ZoneDetect *zdb;
#endif
#define SSL_VERIFY_PEER (1)
#define SSL_VERIFY_NONE (0)
@@ -1056,6 +1059,16 @@ void handle_message(void *userdata, char *topic, char *payload, size_t payloadle
}
}
#ifdef WITH_TZ
if ((j = json_find_member(json, "tzname")) == NULL) {
char* tz_str = ZDHelperSimpleLookupString(zdb, lat, lon);
if (tz_str) {
json_append_member(json, "tzname", json_mkstring(tz_str));
ZDHelperSimpleLookupStringFree(tz_str);
}
}
#endif
if ((j = json_find_member(json, "_geoprec")) != NULL) {
if (j->tag == JSON_STRING) {
geoprec = atoi(j->string_);

View File

@@ -46,7 +46,7 @@ static struct gcache *gc = NULL;
#ifdef WITH_TZ
# include "zonedetect.h"
static ZoneDetect *zdb = NULL;
ZoneDetect *zdb = NULL;
#endif
void storage_init(int revgeo)