Исправлено чтение ini.env на cifs с ядром 5.5

legacy27 3.6.7.11
Mike Hiretsky 4 years ago
parent b484d82ca1
commit 35ee6cb589

@ -61,7 +61,7 @@ class iniParser(_error):
"""установка прав создаваемого ini-файла"""
self.mode = mode
def lockfile(self, fd, fn, timeout=5):
def lockfile(self, fd, fn, timeout=5, readonly=False):
"""
Блокировка файла с таймаутом
"""
@ -71,7 +71,10 @@ class iniParser(_error):
try:
fcntl.flock(fd, fcntl.LOCK_EX | fcntl.LOCK_NB)
return True
except IOError, e:
except IOError as e:
# dirty hack for lock ini.env on cifs
if e.errno == errno.EBADF and readonly:
return False
if e.errno != errno.EAGAIN:
raise e
time.sleep(1)
@ -111,7 +114,7 @@ class iniParser(_error):
if not os.access(self.iniFile, os.R_OK):
return ""
self.FD = self._open("r")
self.lockfile(self.FD.fileno(), self.iniFile)
self.lockfile(self.FD.fileno(), self.iniFile, readonly=True)
textIni = self.FD.read()
return textIni

Loading…
Cancel
Save