ubik-dont-serve-data-while-syncing-20030927
authorKris Van Hees <aedil@sinenomine.net>
Sat, 27 Sep 2003 07:23:30 +0000 (07:23 +0000)
committerDerrick Brashear <shadow@dementia.org>
Sat, 27 Sep 2003 07:23:30 +0000 (07:23 +0000)
while we're syncing a new database over, and if the sync fails, don't keep
serving out of the truncated and/or trashed database. set the db version to 0
before starting the sync.

src/ubik/remote.c

index 68956a3..54495cc 100644 (file)
@@ -537,7 +537,8 @@ SDISK_SendFile(rxcall, file, length, avers)
     (*dbase->truncate) (dbase, file, 0);       /* truncate first */
     tversion.epoch = 0;                /* start off by labelling in-transit db as invalid */
     tversion.counter = 0;
-    (*dbase->setlabel) (dbase, file, &tversion);       /* setlabel does sync */
+    (*dbase->setlabel) (dbase, file, &tversion);/* setlabel does sync */
+    memcpy(&ubik_dbase->version, &tversion, sizeof(struct ubik_version));
     while (length > 0) {
        tlen = (length > sizeof(tbuffer) ? sizeof(tbuffer) : length);
        code = rx_Read(rxcall, tbuffer, tlen);