X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;ds=sidebyside;f=ud-generate;h=1617821ba38de4eec4787aac1a3fc96a3137dad6;hb=22fc98e6d60823d6740d7aa1ab42675bf76eb971;hp=c93fdf6191c85e801fd1ff5e2d6b7977c06f2020;hpb=f7531ca0088fbb3a727a5e0a607acec49a7d4ed6;p=mirror%2Fuserdir-ldap.git diff --git a/ud-generate b/ud-generate index c93fdf6..1617821 100755 --- a/ud-generate +++ b/ud-generate @@ -6,7 +6,7 @@ # Copyright (c) 2003-2004 James Troup # Copyright (c) 2004-2005,7 Joey Schulze # Copyright (c) 2001-2007 Ryan Murray -# Copyright (c) 2008 Peter Palfrader +# Copyright (c) 2008,2009,2010 Peter Palfrader # Copyright (c) 2008 Andreas Barth # Copyright (c) 2008 Mark Hymers # Copyright (c) 2008 Luk Claes @@ -403,7 +403,7 @@ def GenSSHtarballs(userlist, SSHFiles, grouprevmap, target): lines.append(line) if not lines: continue # no keys for this host - contents = "\n".join(lines) + contents = "\n".join(lines) + "\n" to.size = len(contents) tf.addfile(to, StringIO(contents)) @@ -778,29 +778,9 @@ def GenDNS(File): try: F = open(File + ".tmp", "w") -# global HostAttrs -# -# for x in HostAttrs: -# if x[1].has_key("hostname") == 0 or \ -# x[1].has_key("architecture") == 0 or\ -# x[1].has_key("sshRSAHostKey") == 0: -# continue -# -# if IsDebianHost.match(GetAttr(x, "hostname")) is not None: -# continue -# -# DNSInfo = ExtractDNSInfo(x) -# start = True -# for Line in DNSInfo: -# if start == True: -# Line = "%s.\t%s" % (GetAttr(x, "hostname"), Line) -# start = False -# else: -# Line = "\t\t\t%s" % (Line) -# F.write(Line + "\n") - # Fetch all the users global PasswdAttrs + RRs = {} # Write out the zone file entry for each user for x in PasswdAttrs: @@ -826,11 +806,13 @@ def GenDNS(File): F.write("; Has BSMTP\n") # Write some identification information - if Split[2].lower() == "a": - Line = "%s IN TXT \"%s\"\n"%(Split[0], EmailAddress(x)) - for y in x[1]["keyFingerPrint"]: - Line = Line + "%s IN TXT \"PGP %s\"\n"%(Split[0], FormatPGPKey(y)) - F.write(Line) + if not RRs.has_key(Host): + if Split[2].lower() in ["a", "aaaa"]: + Line = "%s IN TXT \"%s\"\n"%(Split[0], EmailAddress(x)) + for y in x[1]["keyFingerPrint"]: + Line = Line + "%s IN TXT \"PGP %s\"\n"%(Split[0], FormatPGPKey(y)) + F.write(Line) + RRs[Host] = 1 else: Line = "; Err %s"%(str(Split)) F.write(Line) @@ -1017,7 +999,6 @@ def GenSSHKnown(File, mode=None): if 'sshdistAuthKeysHost' in x[1]: hosts += x[1]['sshdistAuthKeysHost'] Line = 'command="rsync --server --sender -pr . /var/cache/userdir-ldap/hosts/%s",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,from="%s" %s' % (Host, ",".join(hosts), I) - #Line = 'command="rsync --server --sender -pr . /var/cache/userdir-ldap/hosts/%s",no-port-forwarding,no-X11-forwarding,no-agent-forwarding %s' % (Host,I) else: Line = "%s %s" %(",".join(HostNames + HostToIP(x, False)), I) Line = Sanitize(Line) + "\n"