mirror of
https://github.com/servalproject/serval-dna.git
synced 2024-12-18 20:57:56 +00:00
fixed signed/unsigned comparison bug in rhizome manifest cache lookup
that was probably stopping some manifest retrievals for meshms. debugging tweaks.
This commit is contained in:
parent
0cccb5bf83
commit
b31817f564
@ -51,6 +51,7 @@ SERVALD_SRC_FILES = \
|
||||
serval-dna/audio_reflector.c
|
||||
|
||||
SERVALD_LOCAL_CFLAGS = \
|
||||
-g \
|
||||
-DSHELL -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" \
|
||||
-DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" \
|
||||
-DHAVE_LIBC=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 \
|
||||
|
@ -175,24 +175,27 @@ int rhizome_manifest_version_cache_lookup(rhizome_manifest *m)
|
||||
}
|
||||
if (i==24) {
|
||||
/* Entries match -- so check version */
|
||||
unsigned long long rev = rhizome_manifest_get_ll(m,"version");
|
||||
if (0) WHYF("cached version %lld vs manifest version %lld",
|
||||
long long rev = rhizome_manifest_get_ll(m,"version");
|
||||
if (1) WHYF("cached version %lld vs manifest version %lld",
|
||||
entry->version,rev);
|
||||
if (rev>entry->version) {
|
||||
/* If we only have an old version, try refreshing the cache
|
||||
by querying the database */
|
||||
entry->version = sqlite_exec_int64("select version from manifests where id='%s'", id);
|
||||
WHYF("Refreshed stored version from database: entry->version=%lld",
|
||||
entry->version);
|
||||
}
|
||||
if (rev<entry->version) {
|
||||
/* the presented manifest is older than we have.
|
||||
This allows the caller to know that they can tell whoever gave them the
|
||||
manifest it's time to get with the times. May or not ever be
|
||||
implemented, but it would be nice. XXX */
|
||||
WHY("cached version is NEWER than presented version");
|
||||
WHYF("cached version is NEWER than presented version (%lld is newer than %lld)",
|
||||
entry->version,rev);
|
||||
return -2;
|
||||
} else if (rev<=entry->version) {
|
||||
/* the presented manifest is already stored. */
|
||||
if (0) WHY("cached version is NEWER/SAME as presented version");
|
||||
if (1) WHY("cached version is NEWER/SAME as presented version");
|
||||
return -1;
|
||||
} else {
|
||||
/* the presented manifest is newer than we have */
|
||||
|
Loading…
Reference in New Issue
Block a user