* Fix output of SRV records when using BIND (-o db)

* Add TTL information to records when using BIND


git-svn-id: https://svn.alkaloid.net/gpl/ldap2dns/trunk@447 06cd67b6-e706-0410-b29e-9de616bca6e9
This commit is contained in:
Ben Klang
2008-05-15 01:02:59 +00:00
parent 68aa569b75
commit 79ddabdf6b
3 changed files with 15 additions and 12 deletions

View File

@@ -6,6 +6,8 @@ Version 0.4.2-beta (latest)
them via configuration, environment, or cmdline args. them via configuration, environment, or cmdline args.
* Allow all cmdline args to be set optionally using environment variables * Allow all cmdline args to be set optionally using environment variables
* Updated documentation and added plaintext version * 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 Version 0.4.1 - 2006/10/19
* Updated scripts/data2ldif.pl to properly handle reverse domains * Updated scripts/data2ldif.pl to properly handle reverse domains

5
FAQ
View File

@@ -1,6 +1,6 @@
1) My build bails out with nearly three screens full of error messages! 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: If the first two lines of that error output look like:
ldap2dns.c:9:18: error: lber.h: No such file or directory 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? 2) How do I use DNS TXT records?
(Or: Why do I need that trailing '.'?) (Or: Why do I need that trailing '.'?)
(Or: Why do my DNS TXT records get corrupted?) (Or: Why do my DNS TXT records get corrupted?)
2006-10-19 bklang 2006-10-19 bklang
Due to an original design decision, ldap2dns uses the DNScname attribute to 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 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? 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 official web interface of ldap2dns is "Beatnik." Beatnik is a module for
the Horde framework (http://www.horde.org). Beatnik is actively developed and the Horde framework (http://www.horde.org). Beatnik is actively developed and
can be considered beta status. Early adopters are encouraged to checkout can be considered beta status. Early adopters are encouraged to checkout

View File

@@ -522,9 +522,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix)
} }
} }
if (namedzone) { 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) 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) { } else if (strcasecmp(rr->type, "MX")==0) {
if (tinyfile) { if (tinyfile) {
@@ -546,9 +546,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix)
} }
} }
if (namedzone) { 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) 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) { } else if ( strcasecmp(rr->type, "A")==0) {
if (tinyfile) { if (tinyfile) {
@@ -559,9 +559,9 @@ static void write_rr(struct resourcerecord* rr, int ipdx, int znix)
} }
if (namedzone) { if (namedzone) {
if (ipdx<=0 && rr->cipaddr[0]) 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) 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) { } else if (strcasecmp(rr->type, "PTR")==0) {
int ip[4] = {0, 0, 0, 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) if (tinyfile)
fprintf(tinyfile, "^%s:%s:%s:%s:%s\n", buf, rr->cname, rr->ttl, rr->timestamp, rr->location); fprintf(tinyfile, "^%s:%s:%s:%s:%s\n", buf, rr->cname, rr->ttl, rr->timestamp, rr->location);
if (namedzone) 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) { } else if (strcasecmp(rr->type, "CNAME")==0) {
if (tinyfile) if (tinyfile)
fprintf(tinyfile, "C%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location); fprintf(tinyfile, "C%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location);
if (namedzone) 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) { } else if (strcasecmp(rr->type, "TXT")==0) {
if (tinyfile) if (tinyfile)
fprintf(tinyfile, "'%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location); fprintf(tinyfile, "'%s:%s:%s:%s:%s\n", rr->dnsdomainname, rr->cname, rr->ttl, rr->timestamp, rr->location);
if (namedzone) 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) { } else if (strcasecmp(rr->type, "SRV")==0) {
if (tinyfile) { 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); 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); fprintf(tinyfile, "\\000:%s:%s:%s\n", rr->ttl, rr->timestamp, rr->location);
} }
if (namedzone) { 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);
} }
} }
} }