From 2031f2b23774af66f34aefb282603e7ea527d580 Mon Sep 17 00:00:00 2001 From: Michael Vrable Date: Fri, 15 Jun 2007 19:29:54 -0700 Subject: [PATCH] Wait to write the backup description until a backup is finished. --- scandir.cc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/scandir.cc b/scandir.cc index 3d4dcb5..0f4ba4e 100644 --- a/scandir.cc +++ b/scandir.cc @@ -458,17 +458,13 @@ int main(int argc, char *argv[]) tss = new TarSegmentStore(backup_dest); block_buf = new char[LBS_BLOCK_SIZE]; - /* Write a backup descriptor file, which says which segments are needed and - * where to start to restore this snapshot. The filename is based on the - * current time. */ + /* Store the time when the backup started, so it can be included in the + * snapshot name. */ time_t now; struct tm time_buf; char desc_buf[256]; time(&now); localtime_r(&now, &time_buf); - strftime(desc_buf, sizeof(desc_buf), "%Y%m%dT%H%M%S", &time_buf); - string desc_filename = backup_dest + "/" + desc_buf + ".lbs"; - std::ofstream descriptor(desc_filename.c_str()); /* Open the local database which tracks all objects that are stored * remotely, for efficient incrementals. Provide it with the name of this @@ -491,8 +487,15 @@ int main(int argc, char *argv[]) root->set_data(md.data(), md.size()); root->write(tss); root->checksum(); - segment_list.insert(root->get_ref().get_segment()); + + /* Write a backup descriptor file, which says which segments are needed and + * where to start to restore this snapshot. The filename is based on the + * current time. */ + strftime(desc_buf, sizeof(desc_buf), "%Y%m%dT%H%M%S", &time_buf); + string desc_filename = backup_dest + "/" + desc_buf + ".lbs"; + std::ofstream descriptor(desc_filename.c_str()); + descriptor << "Format: LBS Snapshot v0.1\n"; strftime(desc_buf, sizeof(desc_buf), "%Y-%m-%d %H:%M:%S %z", &time_buf); descriptor << "Date: " << desc_buf << "\n"; -- 2.20.1