diff --git a/ChangeLog b/ChangeLog index a85f8cf..4e5da4b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6,6 +6,8 @@ Version 0.4.2-beta (latest) them via configuration, environment, or cmdline args. * Allow all cmdline args to be set optionally using environment variables * Updated documentation and added plaintext version +* Add output of TTL on individual records when using BIND outputs +* Fix FQDN output of SRV records when using BIND outputs Version 0.4.1 - 2006/10/19 * Updated scripts/data2ldif.pl to properly handle reverse domains diff --git a/FAQ b/FAQ index f8a0acf..ccdab36 100644 --- a/FAQ +++ b/FAQ @@ -1,6 +1,6 @@ 1) My build bails out with nearly three screens full of error messages! -2006-10-04 bklang +2006-10-04 bklang If the first two lines of that error output look like: ldap2dns.c:9:18: error: lber.h: No such file or directory @@ -15,6 +15,7 @@ to those header files to the compiler. 2) How do I use DNS TXT records? (Or: Why do I need that trailing '.'?) (Or: Why do my DNS TXT records get corrupted?) + 2006-10-19 bklang Due to an original design decision, ldap2dns uses the DNScname attribute to store DNS TXT data. This field is normally checked to see if it should be @@ -31,8 +32,8 @@ form of expansion. 3) Where can I find a web interface? -2005-06-06 bklang +2005-06-06 bklang The official web interface of ldap2dns is "Beatnik." Beatnik is a module for the Horde framework (http://www.horde.org). Beatnik is actively developed and can be considered beta status. Early adopters are encouraged to checkout diff --git a/ldap2dns.c b/ldap2dns.c index 901c607..5712e5c 100644 --- a/ldap2dns.c +++ b/ldap2dns.c @@ -522,9 +522,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix) } } if (namedzone) { - fprintf(namedzone, "%s.\tIN NS\t%s.\n", rr->dnsdomainname, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN NS\t%s.\n", rr->dnsdomainname, rr->ttl, rr->cname); if (ipdx>=0) - fprintf(namedzone, "%s.\tIN A\t%s\n", rr->cname, rr->ipaddr[ipdx]); + fprintf(namedzone, "%s.\t%s\tIN A\t%s\n", rr->cname, rr->ttl, rr->ipaddr[ipdx]); } } else if (strcasecmp(rr->type, "MX")==0) { if (tinyfile) { @@ -546,9 +546,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix) } } if (namedzone) { - fprintf(namedzone, "%s.\tIN MX\t%s %s.\n", rr->dnsdomainname, rr->preference, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN MX\t%s %s.\n", rr->dnsdomainname, rr->ttl, rr->preference, rr->cname); if (ipdx>=0) - fprintf(namedzone, "%s.\tIN A\t%s\n", rr->cname, rr->ipaddr[ipdx]); + fprintf(namedzone, "%s.\t%s\tIN A\t%s\n", rr->cname, rr->ttl, rr->ipaddr[ipdx]); } } else if ( strcasecmp(rr->type, "A")==0) { if (tinyfile) { @@ -559,9 +559,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix) } if (namedzone) { if (ipdx<=0 && rr->cipaddr[0]) - fprintf(namedzone, "%s.\tIN A\t%s\n", rr->dnsdomainname, rr->cipaddr); + fprintf(namedzone, "%s.\t%s\tIN A\t%s\n", rr->dnsdomainname, rr->ttl, rr->cipaddr); if (ipdx>=0) - fprintf(namedzone, "%s.\tIN A\t%s\n", rr->dnsdomainname, rr->ipaddr[ipdx]); + fprintf(namedzone, "%s.\t%s\tIN A\t%s\n", rr->dnsdomainname, rr->ttl, rr->ipaddr[ipdx]); } } else if (strcasecmp(rr->type, "PTR")==0) { int ip[4] = {0, 0, 0, 0}; @@ -580,17 +580,17 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix) if (tinyfile) fprintf(tinyfile, "^%s:%s:%s:%s:%s\n", buf, rr->cname, rr->ttl, rr->timestamp, rr->location); if (namedzone) - fprintf(namedzone, "%s.\tIN PTR\t%s.\n", buf, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN PTR\t%s.\n", buf, rr->ttl, rr->cname); } else if (strcasecmp(rr->type, "CNAME")==0) { if (tinyfile) fprintf(tinyfile, "C%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location); if (namedzone) - fprintf(namedzone, "%s.\tIN CNAME\t%s.\n", rr->dnsdomainname, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN CNAME\t%s.\n", rr->dnsdomainname, rr->ttl, rr->cname); } else if (strcasecmp(rr->type, "TXT")==0) { if (tinyfile) fprintf(tinyfile, "'%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location); if (namedzone) - fprintf(namedzone, "%s.\tIN TXT\t%s.\n", rr->dnsdomainname, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN TXT\t%s.\n", rr->dnsdomainname, rr->ttl, rr->cname); } else if (strcasecmp(rr->type, "SRV")==0) { if (tinyfile) { fprintf(tinyfile, ":%s:33:\\%03o\\%03o\\%03o\\%03o\\%03o\\%03o", rr->dnsdomainname, rr->dnssrvpriority >> 8, rr->dnssrvpriority & 0xff, rr->dnssrvweight >> 8, rr->dnssrvweight & 0xff, rr->dnssrvport >> 8, rr->dnssrvport & 0xff); @@ -605,7 +605,7 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix) fprintf(tinyfile, "\\000:%s:%s:%s\n", rr->ttl, rr->timestamp, rr->location); } if (namedzone) { - fprintf(namedzone, "%s\tIN SRV\t%d\t%d\t%d\t%s.\n", rr->dnsdomainname, rr->dnssrvpriority, rr->dnssrvweight, rr->dnssrvport, rr->cname); + fprintf(namedzone, "%s.\t%s\tIN SRV\t%d\t%d\t%d\t%s.\n", rr->dnsdomainname, rr->ttl, rr->dnssrvpriority, rr->dnssrvweight, rr->dnssrvport, rr->cname); } } }