def GenDBM(accounts, File, key):
Fdb = None
+ OldMask = os.umask(0022)
+ fn = os.path.join(File).encode('ascii', 'ignore')
try:
- OldMask = os.umask(0022)
- # nothing else does the fsync stuff, so why do it here?
- fn = os.path.join(prefix,File).encode('ascii', 'ignore')
- fntmp = os.path.join(prefix,File + '.tmp').encode('ascii', 'ignore')
- try:
- posix.remove(fntmp)
- except:
- pass
+ posix.remove(fn)
+ except:
+ pass
- Fdb = dbm.open(fntmp, "c")
+ try:
+ Fdb = dbm.open(fn, "c")
os.umask(OldMask)
# Write out the email address for each user
Fdb[user] = value
Fdb.close()
- posix.rename(fntmp,fn)
- # Oops, something unspeakable happened.
except:
- Fdb.close()
+ # python-dbm names the files Fdb.db.db so we want to them to be Fdb.db
+ os.remove(File + ".db")
raise
+ # python-dbm names the files Fdb.db.db so we want to them to be Fdb.db
+ os.rename (File + ".db", File)
# Generate the anon XEarth marker file
def GenMarkers(accounts, File):
GenMailDisable(accounts, global_dir + "mail-disable")
GenCDB(accounts, global_dir + "mail-forward.cdb", 'emailForward')
- GenDBM(accounts, global_dir + "mail-forward.dbm", 'emailForward')
+ GenDBM(accounts, global_dir + "mail-forward.db", 'emailForward')
GenCDB(accounts, global_dir + "mail-contentinspectionaction.cdb", 'mailContentInspectionAction')
- GenDBM(accounts, global_dir + "mail-contentinspectionaction.dbm", 'mailContentInspectionAction')
+ GenDBM(accounts, global_dir + "mail-contentinspectionaction.db", 'mailContentInspectionAction')
GenPrivate(accounts, global_dir + "debian-private")
GenSSHKnown(host_attrs, global_dir+"authorized_keys", 'authorized_keys', global_dir+'ud-generate.lock')
GenMailBool(accounts, global_dir + "mail-greylist", "mailGreylisting")
if not 'NOMARKERS' in ExtraList:
DoLink(global_dir, OutDir, "markers")
DoLink(global_dir, OutDir, "mail-forward.cdb")
- DoLink(global_dir, OutDir, "mail-forward.dbm")
+ DoLink(global_dir, OutDir, "mail-forward.db")
DoLink(global_dir, OutDir, "mail-contentinspectionaction.cdb")
- DoLink(global_dir, OutDir, "mail-contentinspectionaction.dbm")
+ DoLink(global_dir, OutDir, "mail-contentinspectionaction.db")
DoLink(global_dir, OutDir, "mail-disable")
DoLink(global_dir, OutDir, "mail-greylist")
DoLink(global_dir, OutDir, "mail-callout")
DoLink(global_dir, OutDir, "mail-whitelist")
DoLink(global_dir, OutDir, "all-accounts.json")
GenCDB(accounts, OutDir + "user-forward.cdb", 'emailForward')
- GenDBM(accounts, OutDir + "user-forward.dbm", 'emailForward')
+ GenDBM(accounts, OutDir + "user-forward.db", 'emailForward')
GenCDB(accounts, OutDir + "batv-tokens.cdb", 'bATVToken')
- GenDBM(accounts, OutDir + "batv-tokens.dbm", 'bATVToken')
+ GenDBM(accounts, OutDir + "batv-tokens.db", 'bATVToken')
GenCDB(accounts, OutDir + "default-mail-options.cdb", 'mailDefaultOptions')
- GenDBM(accounts, OutDir + "default-mail-options.dbm", 'mailDefaultOptions')
+ GenDBM(accounts, OutDir + "default-mail-options.db", 'mailDefaultOptions')
# Compatibility.
DoLink(global_dir, OutDir, "forward-alias")