rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/rpath.py


From: dean gaudet
Subject: [Rdiff-backup-commits] rdiff-backup CHANGELOG rdiff_backup/rpath.py
Date: Mon, 29 Jan 2007 17:13:07 +0000

CVSROOT:        /cvsroot/rdiff-backup
Module name:    rdiff-backup
Changes by:     dean gaudet <dgaudet>   07/01/29 17:13:07

Modified files:
        .              : CHANGELOG 
        rdiff_backup   : rpath.py 

Log message:
        Cygwin generates EACCESS on fsync -- so accept it rather than dieing.
        (Marc Dyksterhouse).

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/CHANGELOG?cvsroot=rdiff-backup&r1=1.196&r2=1.197
http://cvs.savannah.gnu.org/viewcvs/rdiff-backup/rdiff_backup/rpath.py?cvsroot=rdiff-backup&r1=1.104&r2=1.105

Patches:
Index: CHANGELOG
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/CHANGELOG,v
retrieving revision 1.196
retrieving revision 1.197
diff -u -b -r1.196 -r1.197
--- CHANGELOG   29 Jan 2007 17:11:18 -0000      1.196
+++ CHANGELOG   29 Jan 2007 17:13:07 -0000      1.197
@@ -1,6 +1,9 @@
 New in v1.1.8 (????/??/??)
 --------------------------
 
+Cygwin generates EACCESS on fsync -- so accept it rather than dieing.
+(Marc Dyksterhouse).
+
 Add "FilenameMapping.set_init_quote_vals" security exception.
 (Marc Dyksterhouse)
 

Index: rdiff_backup/rpath.py
===================================================================
RCS file: /cvsroot/rdiff-backup/rdiff-backup/rdiff_backup/rpath.py,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -b -r1.104 -r1.105
--- rdiff_backup/rpath.py       29 Dec 2006 16:10:15 -0000      1.104
+++ rdiff_backup/rpath.py       29 Jan 2007 17:13:07 -0000      1.105
@@ -495,7 +495,8 @@
 
        def getperms(self):
                """Return permission block of file"""
-               return self.data['perms']
+               if self.data.has_key('perms'): return self.data['perms']
+               else: return 0
 
        def getuname(self):
                """Return username that owns the file"""
@@ -934,11 +935,13 @@
        def isowner(self):
                """Return true if current process is owner of rp or root"""
                uid = self.conn.os.getuid()
-               return uid == 0 or uid == self.data['uid']
+               return uid == 0 or \
+                          (self.data.has_key('uid') and uid == 
self.data['uid'])
 
        def isgroup(self):
                """Return true if process has group of rp"""
-               return self.data['gid'] in 
self.conn.Globals.get('process_groups')
+               return (self.data.has_key('gid') and \
+                               self.data['gid'] in 
self.conn.Globals.get('process_groups'))
 
        def delete(self):
                """Delete file at self.path.  Recursively deletes 
directories."""
@@ -1154,7 +1157,8 @@
                        os.close(fd)
                except OSError, e:
                        if locals().has_key('fd'): os.close(fd)
-                       if e.errno != errno.EPERM or self.isdir(): raise
+                       if (e.errno != errno.EPERM and e.errno != errno.EACCES) 
\
+                               or self.isdir(): raise
 
                        # Maybe the system doesn't like read-only fsyncing.
                        # However, to open RDWR, we may need to alter 
permissions




reply via email to

[Prev in Thread] Current Thread [Next in Thread]