From 423fb589b92c5823834f0ad58ff5ad03f39d91af Mon Sep 17 00:00:00 2001 From: gardners Date: Fri, 27 Jan 2012 17:18:14 +1030 Subject: [PATCH] Bug fixes to rhizome manifest:version cache. Lookup now really happens before database query. --- rhizome_fetch.c | 2 ++ rhizome_packetformats.c | 36 ++++++++++++++++++------------------ 2 files changed, 20 insertions(+), 18 deletions(-) diff --git a/rhizome_fetch.c b/rhizome_fetch.c index ecfc8cdf..289ae5ab 100644 --- a/rhizome_fetch.c +++ b/rhizome_fetch.c @@ -258,7 +258,9 @@ int rhizome_queue_manifest_import(rhizome_manifest *m, fprintf(stderr,"manifest id=%s, version=%lld is new to us.\n", rhizome_manifest_get(m,"id",NULL,0), rhizome_manifest_get_ll(m,"version")); + } } + /* Don't queue if queue slots already full */ if (rhizome_file_fetch_queue_count>=MAX_QUEUED_FILES) { if (debug&DEBUG_RHIZOME) WHY("Already busy fetching files"); diff --git a/rhizome_packetformats.c b/rhizome_packetformats.c index c50e68be..15b9a3e0 100644 --- a/rhizome_packetformats.c +++ b/rhizome_packetformats.c @@ -270,25 +270,25 @@ int overlay_rhizome_saw_advertisements(int i,overlay_frame *f, long long now) if (!m->errors) { /* Manifest is okay, so see if it is worth storing */ - manifest_id=rhizome_manifest_get(m,"id",NULL,0); - if (manifest_id) - { - if (sqlite_exec_int64("SELECT COUNT(*) from manifests where id='%s';", - manifest_id)==0) { - if (debug&DEBUG_RHIZOME) fprintf(stderr,"Unverified manifest %s looks worthly of replication (not seen before).\n",manifest_id); - importManifest=1; - } - else - if (sqlite_exec_int64("SELECT version from manifests where id='%s';", - manifest_id) -