From 428b5213c2ff8114eea70e51f3b17af9e84f7a4a Mon Sep 17 00:00:00 2001 From: Stefan Ritt Date: Wed, 24 Mar 2004 20:44:21 +0000 Subject: [PATCH] Improved synchronization speed SVN revision: 854 --- src/elogd.c | 58 +++++++++++++++++++++++++++++++++++------------------ 1 file changed, 38 insertions(+), 20 deletions(-) diff --git a/src/elogd.c b/src/elogd.c index 906ec079..ef2a5cf2 100755 --- a/src/elogd.c +++ b/src/elogd.c @@ -6,6 +6,9 @@ Contents: Web server program for Electronic Logbook ELOG $Log$ + Revision 1.312 2004/03/24 20:44:21 midas + Improved synchronization speed + Revision 1.311 2004/03/22 21:13:07 midas Improved speed of strieq() @@ -10421,7 +10424,13 @@ void synchronize_logbook(LOGBOOK * lbs, BOOL bcron) logf(lbs, "MIRROR conflict entry #%d", message_id); combine_url(lbs, list[index], "", str, sizeof(str)); - sprintf(loc_ref, "%s", message_id, loc("local")); + + if (getcfg_topgroup()) + sprintf(loc_ref, "%s", lbs->name_enc, + message_id, loc("local")); + else + sprintf(loc_ref, "%s", message_id, loc("local")); + sprintf(rem_ref, "%s", str, message_id, loc("remote")); @@ -10671,29 +10680,32 @@ void synchronize_logbook(LOGBOOK * lbs, BOOL bcron) free(md5_remote); /* save remote MD5s in file */ - n_remote = retrieve_remote_md5(lbs, list[index], &md5_remote, error_str); - if (n_remote < 0) - rsprintf("%s\n", error_str); + if (!all_identical) { + n_remote = retrieve_remote_md5(lbs, list[index], &md5_remote, error_str); + if (n_remote < 0) + rsprintf("%s\n", error_str); - /* keep conflicting messages in cache */ - for (i = 0; i < n_cache; i++) - if (md5_cache[i].message_id != -1) { + /* keep conflicting messages in cache */ + for (i = 0; i < n_cache; i++) + if (md5_cache[i].message_id != -1) { - if (i == 0) - memcpy(md5_remote[0].md5_digest, md5_cache[0].md5_digest, 16); - else - for (j = 0; j < n_remote; j++) - if (md5_remote[j].message_id == md5_cache[i].message_id) { - memcpy(md5_remote[j].md5_digest, md5_cache[i].md5_digest, 16); - break; - } - } + if (i == 0) + memcpy(md5_remote[0].md5_digest, md5_cache[0].md5_digest, 16); + else + for (j = 0; j < n_remote; j++) + if (md5_remote[j].message_id == md5_cache[i].message_id) { + memcpy(md5_remote[j].md5_digest, md5_cache[i].md5_digest, 16); + break; + } + } - if (!getcfg(lbs->name, "Mirror simulate", str) || atoi(str) == 0) - save_md5(lbs, list[index], md5_remote, n_remote); + if (!getcfg(lbs->name, "Mirror simulate", str) || atoi(str) == 0) + save_md5(lbs, list[index], md5_remote, n_remote); + + if (md5_remote) + free(md5_remote); + } - if (md5_remote) - free(md5_remote); if (md5_cache) free(md5_cache); @@ -16452,6 +16464,12 @@ void interprete(char *lbook, char *path) return; } + /* from here on, logbook must be valid */ + if (!logbook[0]) { + show_selection_page(NULL); + return; + } + /*---- check if attachment requested -----------------------------*/ if (strchr(dec_path, '/')) {