F = open(File, "w", 0600)
os.umask(OldMask)
- root = Element('include')
-
for a in accounts:
if not 'voipPassword' in a: continue
if not a.pw_active(): continue
Pass = str(a['voipPassword'])
- user = Element('user')
- user.attrib['id'] = "%s" % (a['uid'])
- root.append(user)
- params = Element('params')
- user.append(params)
- param = Element('param')
- params.append(param)
- param.attrib['name'] = "a1-hash"
- param.attrib['value'] = "%s" % (Pass)
- variables = Element('variables')
- user.append(variables)
- variable = Element('variable')
- variable.attrib['name'] = "toll_allow"
- variable.attrib['value'] = "domestic,international,local"
- variables.append(variable)
-
- F.write("%s" % (prettify(root)))
+ realm = 'sip.debian.org'
+ A1 = "%s:%s:%s" % (a['uid'], realm, Pass)
+ HA1 = hashlib.md5(A1).hexdigest()
+ Line = "%s:%s:%s:AUTHORIZED" % (a['uid'], HA1, Pass)
+ Line = Sanitize(Line) + "\n"
+ F.write("%s" % (Line))
except:
Die(File, None, F)
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")