Rev1800, Use -tmpnew and -tmpold postfix for atomic write
This commit is contained in:
parent
5c2b90c20f
commit
431415c052
2 changed files with 10 additions and 10 deletions
|
@ -9,7 +9,7 @@ class Config(object):
|
|||
|
||||
def __init__(self, argv):
|
||||
self.version = "0.5.1"
|
||||
self.rev = 1799
|
||||
self.rev = 1800
|
||||
self.argv = argv
|
||||
self.action = None
|
||||
self.config_file = "zeronet.conf"
|
||||
|
@ -149,7 +149,7 @@ class Config(object):
|
|||
self.parser.add_argument('--updatesite', help='Source code update site', default='1UPDatEDxnvHDo7TXvq6AEBARfNkyfxsp',
|
||||
metavar='address')
|
||||
self.parser.add_argument('--size_limit', help='Default site size limit in MB', default=10, type=int, metavar='size')
|
||||
self.parser.add_argument('--connected_limit', help='Max connected peer per site', default=10, type=int, metavar='connected_limit')
|
||||
self.parser.add_argument('--connected_limit', help='Max connected peer per site', default=6, type=int, metavar='connected_limit')
|
||||
|
||||
self.parser.add_argument('--fileserver_ip', help='FileServer bind address', default="*", metavar='ip')
|
||||
self.parser.add_argument('--fileserver_port', help='FileServer bind port', default=15441, type=int, metavar='port')
|
||||
|
|
|
@ -15,16 +15,16 @@ from Config import config
|
|||
def atomicWrite(dest, content, mode="w"):
|
||||
try:
|
||||
permissions = stat.S_IMODE(os.lstat(dest).st_mode)
|
||||
with open(dest + "-new", mode) as f:
|
||||
with open(dest + "-tmpnew", mode) as f:
|
||||
f.write(content)
|
||||
f.flush()
|
||||
os.fsync(f.fileno())
|
||||
if os.path.isfile(dest + "-old"): # Previous incomplete write
|
||||
os.rename(dest + "-old", dest + "-old-%s" % time.time())
|
||||
os.rename(dest, dest + "-old")
|
||||
os.rename(dest + "-new", dest)
|
||||
if os.path.isfile(dest + "-tmpold"): # Previous incomplete write
|
||||
os.rename(dest + "-tmpold", dest + "-tmpold-%s" % time.time())
|
||||
os.rename(dest, dest + "-tmpold")
|
||||
os.rename(dest + "-tmpnew", dest)
|
||||
os.chmod(dest, permissions)
|
||||
os.unlink(dest + "-old")
|
||||
os.unlink(dest + "-tmpold")
|
||||
return True
|
||||
except Exception, err:
|
||||
from Debug import Debug
|
||||
|
@ -32,8 +32,8 @@ def atomicWrite(dest, content, mode="w"):
|
|||
"File %s write failed: %s, reverting..." %
|
||||
(dest, Debug.formatException(err))
|
||||
)
|
||||
if os.path.isfile(dest + "-old") and not os.path.isfile(dest):
|
||||
os.rename(dest + "-old", dest)
|
||||
if os.path.isfile(dest + "-tmpold") and not os.path.isfile(dest):
|
||||
os.rename(dest + "-tmpold", dest)
|
||||
return False
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue