From 47e1095dd734b46d55afe9861c5d4c1b7a287d2b Mon Sep 17 00:00:00 2001 From: Eric Bollengier Date: Thu, 12 Jul 2007 18:53:43 +0000 Subject: [PATCH] ebl have been applied git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@5161 91ce42f0-d328-0410-95d8-f526ca767f89 --- bacula/patches/testing/fd_checkchanges.patch | 160 ------------------ bacula/patches/testing/fd_checkchanges.readme | 55 ------ 2 files changed, 215 deletions(-) delete mode 100644 bacula/patches/testing/fd_checkchanges.patch delete mode 100644 bacula/patches/testing/fd_checkchanges.readme diff --git a/bacula/patches/testing/fd_checkchanges.patch b/bacula/patches/testing/fd_checkchanges.patch deleted file mode 100644 index 90952e811e..0000000000 --- a/bacula/patches/testing/fd_checkchanges.patch +++ /dev/null @@ -1,160 +0,0 @@ -diff -Naur bacula1/src/dird/inc_conf.c bacula2/src/dird/inc_conf.c ---- bacula1/src/dird/inc_conf.c 2007-02-19 20:44:13.000000000 +0100 -+++ bacula2/src/dird/inc_conf.c 2007-02-19 20:44:33.000000000 +0100 -@@ -120,6 +120,7 @@ - {"noatime", store_opts, {0}, 0, 0, 0}, - {"enhancedwild", store_opts, {0}, 0, 0, 0}, - {"drivetype", store_drivetype, {0}, 0, 0, 0}, -+ {"checkchanges", store_opts, {0}, 0, 0, 0}, - {NULL, NULL, {0}, 0, 0, 0} - }; - -@@ -145,7 +146,8 @@ - INC_KW_IGNORECASE, - INC_KW_HFSPLUS, - INC_KW_NOATIME, -- INC_KW_ENHANCEDWILD -+ INC_KW_ENHANCEDWILD, -+ INC_KW_CHKCHANGES - }; - - /* -@@ -174,6 +176,7 @@ - {"hfsplussupport", INC_KW_HFSPLUS}, - {"noatime", INC_KW_NOATIME}, - {"enhancedwild", INC_KW_ENHANCEDWILD}, -+ {"checkchanges", INC_KW_CHKCHANGES}, - {NULL, 0} - }; - -@@ -239,6 +242,8 @@ - {"no", INC_KW_NOATIME, "0"}, - {"yes", INC_KW_ENHANCEDWILD, "K"}, - {"no", INC_KW_ENHANCEDWILD, "0"}, -+ {"yes", INC_KW_CHKCHANGES, "c"}, -+ {"no", INC_KW_CHKCHANGES, "0"}, - {NULL, 0, 0} - }; - -diff -Naur bacula1/src/filed/backup.c bacula2/src/filed/backup.c ---- bacula1/src/filed/backup.c 2007-02-19 20:44:13.000000000 +0100 -+++ bacula2/src/filed/backup.c 2007-02-19 20:47:14.000000000 +0100 -@@ -453,7 +453,13 @@ - } - - stat = send_data(jcr, data_stream, ff_pkt, digest, signing_digest); -+ -+ if (ff_pkt->flags & FO_CHKCHANGES) { -+ has_file_changed(jcr, ff_pkt); -+ } -+ - bclose(&ff_pkt->bfd); -+ - if (!stat) { - return 0; - } -diff -Naur bacula1/src/filed/job.c bacula2/src/filed/job.c ---- bacula1/src/filed/job.c 2007-02-19 20:44:13.000000000 +0100 -+++ bacula2/src/filed/job.c 2007-02-19 20:44:33.000000000 +0100 -@@ -1021,6 +1021,9 @@ - case 'K': - fo->flags |= FO_NOATIME; - break; -+ case 'c': -+ fo->flags |= FO_CHKCHANGES; -+ break; - default: - Emsg1(M_ERROR, 0, _("Unknown include/exclude option: %c\n"), *p); - break; -diff -Naur bacula1/src/findlib/find.h bacula2/src/findlib/find.h ---- bacula1/src/findlib/find.h 2007-02-19 20:44:16.000000000 +0100 -+++ bacula2/src/findlib/find.h 2007-02-19 20:44:33.000000000 +0100 -@@ -107,6 +107,7 @@ - #define FO_ENCRYPT (1<<21) /* Encrypt data stream */ - #define FO_NOATIME (1<<22) /* Use O_NOATIME to prevent atime change */ - #define FO_ENHANCEDWILD (1<<23) /* Enhanced wild card processing */ -+#define FO_CHKCHANGES (1<<24) /* Check if file have been modified during backup */ - - struct s_included_file { - struct s_included_file *next; -diff -Naur bacula1/src/findlib/find_one.c bacula2/src/findlib/find_one.c ---- bacula1/src/findlib/find_one.c 2007-02-19 20:44:16.000000000 +0100 -+++ bacula2/src/findlib/find_one.c 2007-02-19 20:44:33.000000000 +0100 -@@ -271,6 +271,51 @@ - return false; - } - -+/* check if a file have changed during backup and display an error */ -+bool has_file_changed(JCR *jcr, FF_PKT *ff_pkt) -+{ -+ struct stat statp; -+ Dmsg1(500, "has_file_changed fname=%s\n",ff_pkt->fname); -+ -+ if (ff_pkt->type != FT_REG) { /* not a regular file */ -+ return false; -+ } -+ -+ if (lstat(ff_pkt->fname, &statp) != 0) { -+ berrno be; -+ Jmsg(jcr, M_WARNING, 0, -+ _("Cannot stat file %s: ERR=%s\n"),ff_pkt->fname,be.strerror()); -+ return true; -+ } -+ -+ if (statp.st_mtime != ff_pkt->statp.st_mtime) { -+ /* TODO: add time of changes */ -+ Jmsg(jcr, M_ERROR, 0, _("%s mtime changed during backup.\n"), ff_pkt->fname); -+ return true; -+ } -+ -+ if (statp.st_ctime != ff_pkt->statp.st_ctime) { -+ /* TODO: add time of changes */ -+ Jmsg(jcr, M_ERROR, 0, _("%s ctime changed during backup.\n"), ff_pkt->fname); -+ return true; -+ } -+ -+ if (statp.st_size != ff_pkt->statp.st_size) { -+ /* TODO: add size change */ -+ Jmsg(jcr, M_ERROR, 0, _("%s size changed during backup.\n"),ff_pkt->fname); -+ return true; -+ } -+ -+ if ((statp.st_blksize*statp.st_blocks) != -+ (ff_pkt->statp.st_blksize*ff_pkt->statp.st_blocks)) { -+ /* TODO: add size change */ -+ Jmsg(jcr, M_ERROR, 0, _("%s size changed during backup.\n"),ff_pkt->fname); -+ return true; -+ } -+ -+ return false; -+} -+ - /* - * Find a single file. - * handle_file is the callback for handling the file. -diff -Naur bacula1/src/findlib/protos.h bacula2/src/findlib/protos.h ---- bacula1/src/findlib/protos.h 2007-02-19 20:44:16.000000000 +0100 -+++ bacula2/src/findlib/protos.h 2007-02-19 20:44:33.000000000 +0100 -@@ -65,7 +65,7 @@ - int handle_file(FF_PKT *ff_pkt, void *hpkt, bool top_level), - void *pkt, char *p, dev_t parent_device, bool top_level); - int term_find_one(FF_PKT *ff); -- -+bool has_file_changed(JCR *jcr, FF_PKT *ff_pkt); - - /* From get_priv.c */ - int enable_backup_privileges(JCR *jcr, int ignore_errors); -diff -Naur bacula1/src/win32/dll/bacula.def bacula2/src/win32/dll/bacula.def ---- bacula1/src/win32/dll/bacula.def 2007-02-28 14:35:43.000000000 +0100 -+++ bacula2/src/win32/dll/bacula.def 2007-03-01 11:15:50.000000000 +0100 -@@ -80,6 +80,8 @@ - - ; find_one.c: - _Z13find_one_fileP3JCRP6FF_PKTPFiS2_PvbES3_Pcjb -+_Z17has_file_changedP3JCRP6FF_PKT -+ - - ; fstype.c: - _Z6fstypePKcPci - - diff --git a/bacula/patches/testing/fd_checkchanges.readme b/bacula/patches/testing/fd_checkchanges.readme deleted file mode 100644 index 2eaebffeff..0000000000 --- a/bacula/patches/testing/fd_checkchanges.readme +++ /dev/null @@ -1,55 +0,0 @@ -From: Eric Bollengier - -Check size, age of each file after their backup to see if -they have changed during backup. - -This patch ask to fd to do an extra check (stat(2)) after -each file backup. mtime, ctime and size are compared with -"before backup" informations. If time or size mismatch, an -error will raise. - -You must upgrade FD and DIR at the same time. - -TODO: - - Add documentation - - Add informations on warning/error messages - -Configuration : - -FileSet { - Name = "Full Set" - Include { - Options { - checkchanges = yes # use this to enable it - } - File = /tmp/bacula - } -} - -Output : - -17-fév 18:03 zog-fd: Client1.2007-02-17_18.02.21 Error: /tmp/bacula/etc/toto have changed during backup. -17-fév 18:03 zog-fd: Client1.2007-02-17_18.02.21 Error: /tmp/bacula/var/bacula/working/bacula.db size have changed during backup. -17-fév 18:03 zog-sd: Job write elapsed time = 00:00:03, Transfer rate = 22.94 M bytes/second -17-fév 18:03 zog-dir: Bacula 2.1.4 (12Feb07): 17-fév-2007 18:03:01 - JobId: 3 - Job: Client1.2007-02-17_18.02.21 - Backup Level: Incremental, since=2007-02-17 17:58:56 - Client: "zog-fd" 2.1.4 (12Feb07) i686-pc-linux-gnu,debian,testing/unstable - FileSet: "Full Set" 2007-02-17 17:57:36 - Pool: "Default" (From Job resource) - Storage: "File" (From Job resource) - Scheduled time: 17-fév-2007 18:02:19 -... - Volume Session Time: 1171731706 - Last Volume Bytes: 5,973,631 (5.973 MB) - Non-fatal FD errors: 2 - SD Errors: 0 - FD termination status: OK - SD termination status: OK - Termination: Backup OK -- with warnings - - - -$Log$ - -- 2.39.5