ispman/lib/ISPMan/DNSMan AAAArecords.pm, NONE, 1.1 LDIFUtils.pm, 1.3, 1.4
Joerg Delker <[email protected]> Sun, 03 Jun 2007 19:26:19 +0000
| Newsgroups | gmane.comp.isp.ispman.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ispman/ispman/lib/ISPMan/DNSMan
In directory sc8-pr-cvs2.sourceforge.net:/tmp/cvs-serv19284/lib/ISPMan/DNSMan
Modified Files:
LDIFUtils.pm
Added Files:
AAAArecords.pm
Log Message:
implemented feature request [ 1483788 ] ipv6 support
NOTE: ldap schema updated necessary!!!
--- NEW FILE: AAAArecords.pm ---
package ISPMan::DNSMan::AAAArecords;
use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
require Exporter;
@ISA = qw(Exporter AutoLoader);
@EXPORT = qw(
isAAAArecord
editDNSaAAARecords
addDNSaAAARecord
modifyDNSaAAARecord
deleteDNSaAAARecord
getDNSaAAARecords
);
$VERSION = '0.01';
sub isAAAArecord {
my $self = shift;
my $host = shift;
my $domain = shift;
my $branch = join ",", ( "ou=aAAARecord", $self->getDNSDN($domain) );
my $filter = "relativeDomainName=$host";
if ( $self->getConfig("debug") > 2 ) {
print qq|
ISPMan::DNSMan::AAAArecords->isAAAArecord
Getting input:
host: $host
domain: $domain
Calculating:
branch: $branch
filter:$filter
|;
print "EntryExists: ", $self->entryExists( $branch, $filter );
}
return $self->entryExists( $branch, $filter );
}
sub getDNSaAAARecords {
my $self = shift;
my $domain = shift;
my $relativeDomainName = shift;
my $filter;
if ($relativeDomainName) {
$filter =
"&(objectclass=dnsZone)(aAAARecord=*)(relativeDomainName=$relativeDomainName)";
}
else {
$filter = "&(objectclass=dnsZone)(aAAARecord=*)";
}
my $dn = $self->getDNSDN($domain);
my $h =
$self->getEntriesAsHashRef( $dn, $filter,
[ "aAAARecord", "relativeDomainName", "pTRRecord" ] );
my $records;
$self->{'domain'}{'dns'} = ();
undef $self->{'domain'}{'dns'};
for my $hdn ( sort keys %$h ) {
$records = $self->as_arrayref( $h->{$hdn}{'aAAARecord'} );
for (@$records) {
push @{ $self->{'domain'}{'dns'} },
{
'host' => $h->{$hdn}{'relativeDomainName'},
'ttl' => $h->{$hdn}{'DNSTTL'},
'ptr' => $h->{$hdn}{'pTRRecord'},
'ip' => $_
};
}
}
return $self->{'domain'}{'dns'};
}
sub editDNSaAAARecords {
my $self = shift;
my $r = shift;
return
unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" );
$self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") );
$self->getDNSaAAARecords( $r->param("ispmanDomain") );
my $template = "";
if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) {
$template = $self->getTemplate("dns/edit_AAAArecords.tmpl");
}
else {
$template = $self->getTemplate("dns/view_AAAArecords.tmpl");
}
print $template->fill_in( PACKAGE => "ISPMan" );
}
sub modifyDNSaAAARecord {
my $self = shift;
my $r = shift;
my $dn = $r->param("dn");
# delete old record
$self->deleteEntry( $dn );
# add record
$self->addDNSaAAARecord($r);
}
sub deleteDNSaAAARecord {
my $self = shift;
my $r = shift;
my $dn = $r->param("dn");
my $entry = $self->getEntry( $r->param("dn") );
$self->deleteDNSRecord(
$r->param("ispmanDomain"),
"aAAARecord",
$entry->get_value("relativeDomainName"),
$entry->get_value("aAAARecord")
);
$self->editDNSaAAARecords($r);
}
sub addDNSaAAARecord {
my $self = shift;
my $r = shift;
my $extraHash = {};
if ( $self->isCNAME( $r->param("host"), $r->param("ispmanDomain") ) ) {
$r->param( "error",
"ERROR: " . $r->param("host") . " is defined as an CNAME record" );
}
else {
$extraHash->{'pTRRecord'} = $r->param("ip") if $r->param("pTRRecord");
$self->newDNSRecord( $r->param("ispmanDomain"),
"aAAARecord", $r->param("host"), $r->param("ip"), $extraHash );
}
$self->editDNSaAAARecords($r);
}
1;
__END__
Index: LDIFUtils.pm
===================================================================
RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/LDIFUtils.pm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- LDIFUtils.pm 30 May 2004 23:35:38 -0000 1.3
+++ LDIFUtils.pm 3 Jun 2007 19:26:17 -0000 1.4
@@ -8,6 +8,7 @@
@ISA = qw(Exporter AutoLoader);
@EXPORT = qw(
make_ldif_aRecord
+ make_ldif_aAAARecord
make_ldif_mXRecord
make_ldif_nSRecord
make_ldif_cNAMERecord
@@ -34,6 +35,25 @@
return $ldif;
}
+sub make_ldif_aAAARecord {
+ my $self = shift;
+ my ( $domain, $host, $ip ) = @_;
+ $self->prepareBranchForDN( $self->getaAAARecordBranchDn( $domain, $ip ) );
+ my $dn = $self->getaAAARecordDn( $domain, $host, $ip );
+ my $ldif = join(
+ "\n",
+ (
+ "dn: $dn",
+ "objectClass: top",
+ "objectClass: dnsZone",
+ "relativeDomainName: $host",
+ "zoneName: $domain",
+ "aAAARecord: $ip"
+ )
+ );
+ return $ldif;
+}
+
sub make_ldif_mXRecord {
my $self = shift;
my ( $domain, $origion, $pref, $host ) = @_;
-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/