diff options
author | dgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2007-05-19 18:45:50 +0000 |
---|---|---|
committer | dgaudet <dgaudet@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2007-05-19 18:45:50 +0000 |
commit | 49d9d7d8479486aa2a0a6421da82da84909d8e3c (patch) | |
tree | 7c8c094f4a9864a5cacde1a2250380a4eeb6cd48 | |
parent | 249d258b7b5db9d13692e49181ea28eae462889a (diff) | |
download | rdiff-backup-49d9d7d8479486aa2a0a6421da82da84909d8e3c.tar.gz |
Fix for bug #19896 -- symlink() doesn't work on a CIFS-mounted Windows
share. (Jonathan Hankins)
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@802 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
-rw-r--r-- | rdiff-backup/CHANGELOG | 3 | ||||
-rw-r--r-- | rdiff-backup/rdiff_backup/fs_abilities.py | 20 |
2 files changed, 15 insertions, 8 deletions
diff --git a/rdiff-backup/CHANGELOG b/rdiff-backup/CHANGELOG index 21302dd..f6c2631 100644 --- a/rdiff-backup/CHANGELOG +++ b/rdiff-backup/CHANGELOG @@ -1,6 +1,9 @@ New in v1.1.11 (????/??/??) --------------------------- +Fix for bug #19896 -- symlink() doesn't work on a CIFS-mounted Windows +share. (Jonathan Hankins) + Fix for bug #19895 -- eliminate traceback for special file detection on CIFS mounts. (Jonathan Hankins) diff --git a/rdiff-backup/rdiff_backup/fs_abilities.py b/rdiff-backup/rdiff_backup/fs_abilities.py index 25c1226..d9772d5 100644 --- a/rdiff-backup/rdiff_backup/fs_abilities.py +++ b/rdiff-backup/rdiff_backup/fs_abilities.py @@ -408,14 +408,18 @@ class FSAbilities: sym_source = dir_rp.append("symlinked_file1") sym_source.touch() sym_dest = dir_rp.append("symlinked_file2") - sym_dest.symlink(sym_source.path) - sym_dest.setdata() - assert sym_dest.issym() - orig_umask = os.umask(077) - if sym_dest.getperms() == 0700: self.symlink_perms = 1 - else: self.symlink_perms = 0 - os.umask(orig_umask) - sym_dest.delete() + try: + sym_dest.symlink(sym_source.path) + except (OSError): + self.symlink_perms = 0 + else: + sym_dest.setdata() + assert sym_dest.issym() + orig_umask = os.umask(077) + if sym_dest.getperms() == 0700: self.symlink_perms = 1 + else: self.symlink_perms = 0 + os.umask(orig_umask) + sym_dest.delete() sym_source.delete() def set_escape_dos_devices(self, subdir): |