Browse Source

Prevent loss of sabnzbd.ini file due to a full disk.

tags/0.6.0
ShyPike 14 years ago
parent
commit
db8f7fccd3
  1. 31
      sabnzbd/config.py

31
sabnzbd/config.py

@ -687,6 +687,7 @@ def read_config(path):
def save_config(force=False):
""" Update Setup file with current option values """
global CFG, database, modified
assert isinstance(CFG, configobj.ConfigObj)
if not (modified or force):
return True
@ -724,19 +725,33 @@ def save_config(force=False):
else:
CFG[sec][kw] = value
filename = CFG.filename
try:
CFG.write()
# Read current content
f = open(CFG.filename)
x = f.read()
data = f.read()
f.close()
f = open(CFG.filename, "w")
f.write(x)
f.flush()
# Write to temp file
CFG.filename = filename + '.tmp'
f = open(CFG.filename, 'w')
f.write(data)
f.close()
# Update temp file content
CFG.write()
# Rename temp file, overwriting old one
os.remove(filename)
os.rename(CFG.filename, filename)
modified = False
return True
except IOError:
return False
res = True
except:
logging.error(Ta('Cannot create temp file for %s'), CFG.filename)
res = False
CFG.filename = filename
return res

Loading…
Cancel
Save