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

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

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


From: dean gaudet
Subject: [Rdiff-backup-commits] Changes to rdiff-backup/rdiff_backup/rpath.py
Date: Sun, 19 Jun 2005 16:38:40 -0400

Index: rdiff-backup/rdiff_backup/rpath.py
diff -u rdiff-backup/rdiff_backup/rpath.py:1.76 
rdiff-backup/rdiff_backup/rpath.py:1.77
--- rdiff-backup/rdiff_backup/rpath.py:1.76     Sun Jun 19 19:47:56 2005
+++ rdiff-backup/rdiff_backup/rpath.py  Sun Jun 19 20:38:39 2005
@@ -35,7 +35,7 @@
 
 """
 
-import os, stat, re, sys, shutil, gzip, socket, time
+import os, stat, re, sys, shutil, gzip, socket, time, errno
 import Globals, Time, static, log, user_group
 
 
@@ -1017,12 +1017,18 @@
 
        def makedev(self, type, major, minor):
                """Make a special file with specified type, and major/minor 
nums"""
-               cmdlist = ['mknod', self.path, type, str(major), str(minor)]
-               if self.conn.os.spawnvp(os.P_WAIT, 'mknod', cmdlist) != 0:
-                       raise RPathException("Error running %s" % cmdlist)
-               if type == 'c': datatype = 'chr'
-               elif type == 'b': datatype = 'blk'
+               if type == 'c':
+                       datatype = 'chr'
+                       mode = stat.S_IFCHR | 0600
+               elif type == 'b':
+                       datatype = 'blk'
+                       mode = stat.S_IFBLK | 0600
                else: raise RPathException
+               try: self.conn.os.mknod(self.path, mode, 
self.conn.os.makedev(major, minor))
+               except OSError, e:
+                       if e.errno == errno.EPERM:
+                               log.Log("unable to mknod %s -- using touch 
instead" % self.path, 4)
+                               self.touch()
                self.setdata()
 
        def fsync(self, fp = None):




reply via email to

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