ispman/lib/ISPMan/DNSMan Arecords.pm,1.17,1.18 CNAMES.pm,1.17,1.18 LDIFUtils.pm,1.2,1.3 MXrecords.pm,1.20,1.21 NSrecords.pm,1.14,1.15 SOArecords.pm,1.18,1.19
Joerg Delker <[email protected]>
| Newsgroups | gmane.comp.isp.ispman.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/ispman/ispman/lib/ISPMan/DNSMan In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30799/lib/ISPMan/DNSMan Modified Files: Arecords.pm CNAMES.pm LDIFUtils.pm MXrecords.pm NSrecords.pm SOArecords.pm Log Message: code reformatting by perltidy conforming perl style guide Index: CNAMES.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/CNAMES.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- CNAMES.pm 24 May 2004 20:14:32 -0000 1.17 +++ CNAMES.pm 30 May 2004 23:35:38 -0000 1.18 @@ -5,122 +5,133 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( - isCNAME - editDNScNAMERecords - modifyDNScNAMERecord - addDNScNAMERecord - getDNScNAMERecords - getCNAMERecordsForHost - deleteCNAMERecord + isCNAME + editDNScNAMERecords + modifyDNScNAMERecord + addDNScNAMERecord + getDNScNAMERecords + getCNAMERecordsForHost + deleteCNAMERecord ); $VERSION = '0.01'; - - sub isCNAME { - my $self=shift; - my $host=shift; - my $domain=shift; - my $branch=join",", ("ou=cNameRecord", $self->getDNSDN($domain)); - my $filter="relativeDomainName=$host"; - return $self->entryExists($branch, $filter); + my $self = shift; + my $host = shift; + my $domain = shift; + my $branch = join ",", ( "ou=cNameRecord", $self->getDNSDN($domain) ); + my $filter = "relativeDomainName=$host"; + return $self->entryExists( $branch, $filter ); } - - -sub deleteCNAMERecord { #API function - my $self=shift; - my ($domain, $host, $alias)=@_; - $self->deleteDNSRecord($domain, "cNAMERecord", $alias, $host); +sub deleteCNAMERecord { #API function + my $self = shift; + my ( $domain, $host, $alias ) = @_; + $self->deleteDNSRecord( $domain, "cNAMERecord", $alias, $host ); } sub getCNAMERecordsForHost { - my $self=shift; - my ($domain , $host, $extraFilter) = @_; - my $dn=$self->getDNSDN($domain); - my $filter="&(objectclass=dnsZone)(cNAMERecord=$host)"; - if ($extraFilter) { - $filter.="($extraFilter)"; - } - - my $h=$self->getEntriesAsHashRef($dn, $filter); - return $h; - -} + my $self = shift; + my ( $domain, $host, $extraFilter ) = @_; + my $dn = $self->getDNSDN($domain); + my $filter = "&(objectclass=dnsZone)(cNAMERecord=$host)"; + if ($extraFilter) { + $filter .= "($extraFilter)"; + } + my $h = $self->getEntriesAsHashRef( $dn, $filter ); + return $h; -sub getDNScNAMERecords { - my $self=shift; - my $domain=shift; - my $dn=$self->getDNSDN($domain); - my $h=$self->getEntriesAsHashRef($dn, "&(objectclass=dnsZone)(cNAMERecord=*)", ["cNAMERecord", "relativeDomainName"]); - my $records; - $self->{'domain'}{'dns'}=(); - undef $self->{'domain'}{'dns'}; - for my $hdn (sort keys %$h){ - $records=$self->as_arrayref($h->{$hdn}{'cNAMERecord'}); - for (@$records) { - push @{$self->{'domain'}{'dns'}}, - { - 'alias' => $h->{$hdn}{'relativeDomainName'}, - 'host' => $_ - }; - } - } - return $self->{'domain'}{'dns'}; } -sub editDNScNAMERecords { - my $self=shift; - my $r=shift; - my $dn=$r->param("dn"); - return unless $self->checkDomainType($r->param("ispmanDomain"),"primary"); - $self->{'domain'}=$self->getDomainInfo($r->param("ispmanDomain")); - $self->getDNScNAMERecords($r->param("ispmanDomain")); - - my $template=""; - if ($self->isDomainEditable($r->param("ispmanDomain"))) { - $template=$self->getTemplate("dns/edit_CNAMES.tmpl"); - } else { - $template=$self->getTemplate("dns/view_CNAMES.tmpl"); - } - print $template->fill_in(PACKAGE => "ISPMan"); +sub getDNScNAMERecords { + my $self = shift; + my $domain = shift; + my $dn = $self->getDNSDN($domain); + my $h = $self->getEntriesAsHashRef( + $dn, + "&(objectclass=dnsZone)(cNAMERecord=*)", + [ "cNAMERecord", "relativeDomainName" ] + ); + my $records; + $self->{'domain'}{'dns'} = (); + undef $self->{'domain'}{'dns'}; + for my $hdn ( sort keys %$h ) { + $records = $self->as_arrayref( $h->{$hdn}{'cNAMERecord'} ); + for (@$records) { + push @{ $self->{'domain'}{'dns'} }, + { + 'alias' => $h->{$hdn}{'relativeDomainName'}, + 'host' => $_ + }; + } + } + return $self->{'domain'}{'dns'}; } +sub editDNScNAMERecords { + my $self = shift; + my $r = shift; + my $dn = $r->param("dn"); + return + unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" ); + $self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") ); + $self->getDNScNAMERecords( $r->param("ispmanDomain") ); + my $template = ""; + if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) { + $template = $self->getTemplate("dns/edit_CNAMES.tmpl"); + } + else { + $template = $self->getTemplate("dns/view_CNAMES.tmpl"); + } + print $template->fill_in( PACKAGE => "ISPMan" ); +} sub addDNScNAMERecord { - my $self=shift; - my $r=shift; - if ($self->isArecord($r->param("alias"), $r->param("ispmanDomain"))) { - $r->param("error", "ERROR: " . $r->param("alias") . " is defined as an A record"); - } else { - $self->newDNSRecord($r->param("ispmanDomain"), "cNAMERecord", $r->param("alias"), $r->param("host")); - } - $self->editDNScNAMERecords($r); + my $self = shift; + my $r = shift; + if ( $self->isArecord( $r->param("alias"), $r->param("ispmanDomain") ) ) { + $r->param( "error", + "ERROR: " . $r->param("alias") . " is defined as an A record" ); + } + else { + $self->newDNSRecord( + $r->param("ispmanDomain"), "cNAMERecord", + $r->param("alias"), $r->param("host") + ); + } + $self->editDNScNAMERecords($r); } +sub modifyDNScNAMERecord { + my $self = shift; + my $r = shift; + # add/update record or delete? + if ( $r->param("host") and $r->param("alias") ) { + # delete old record + $self->deleteEntry( $r->param("dn") ); -sub modifyDNScNAMERecord { - my $self=shift; - my $r=shift; - # add/update record or delete? - if ($r->param("host") and $r->param("alias")) { - # delete old record - $self->deleteEntry($r->param("dn")); - # add record - $self->addDNScNAMERecord($r); - } else { - # FIXME - # Quick&Dirty Patch to delete record. Better do this with direct action in web form - my $entry=$self->getEntry($r->param("dn")); - $self->deleteDNSRecord($r->param("ispmanDomain"), "cNAMERecord", $entry->get_value("relativeDomainName"), $entry->get_value("cNAMERecord")); - $self->editDNScNAMERecords($r); - } + # add record + $self->addDNScNAMERecord($r); + } + else { + +# FIXME +# Quick&Dirty Patch to delete record. Better do this with direct action in web form + my $entry = $self->getEntry( $r->param("dn") ); + $self->deleteDNSRecord( + $r->param("ispmanDomain"), + "cNAMERecord", + $entry->get_value("relativeDomainName"), + $entry->get_value("cNAMERecord") + ); + $self->editDNScNAMERecords($r); + } } Index: MXrecords.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/MXrecords.pm,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- MXrecords.pm 24 May 2004 20:14:32 -0000 1.20 +++ MXrecords.pm 30 May 2004 23:35:38 -0000 1.21 @@ -5,113 +5,117 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( - editDNSmXRecords - modifyDNSmXRecord - addDNSmXRecord - getDNSmXRecords - getFirstMX + editDNSmXRecords + modifyDNSmXRecord + addDNSmXRecord + getDNSmXRecords + getFirstMX ); $VERSION = '0.01'; +sub getDNSmXRecords { + my $self = shift; + my $domain = shift; + my $dn = $self->getDNSDN($domain); + my $h = $self->getEntriesAsHashRef( + $dn, + "&(objectclass=dnsZone)(mXRecord=*)", + [ "mXRecord", "relativeDomainName" ] + ); + $self->{'domain'}{'dns'} = (); + undef $self->{'domain'}{'dns'}; + my $records = (); -sub getDNSmXRecords { - my $self=shift; - my $domain=shift; + for my $hdn ( keys %$h ) { + $records = $self->as_arrayref( $h->{$hdn}{'mXRecord'} ); - my $dn=$self->getDNSDN($domain); - my $h=$self->getEntriesAsHashRef($dn, "&(objectclass=dnsZone)(mXRecord=*)", ["mXRecord", "relativeDomainName"]); - $self->{'domain'}{'dns'}=(); - undef $self->{'domain'}{'dns'}; + for (@$records) { + my ( $pref, $host ) = split( /\s\s*/, $_ ); + push @{ $self->{'domain'}{'dns'} }, + { + 'origion' => $h->{$hdn}{'relativeDomainName'}, + 'pref' => $pref, + 'host' => $host + }; + } + } - my $records=(); - - for my $hdn (keys %$h){ - $records=$self->as_arrayref($h->{$hdn}{'mXRecord'}); - - for (@$records) { - my ($pref, $host)=split(/\s\s*/, $_); - push @{$self->{'domain'}{'dns'}}, - { - 'origion' => $h->{$hdn}{'relativeDomainName'}, - 'pref'=> $pref, - 'host' => $host - }; - } - } - - return $self->{'domain'}{'dns'}; + return $self->{'domain'}{'dns'}; } sub editDNSmXRecords { - my $self=shift; - my $r=shift; - - return unless $self->checkDomainType($r->param("ispmanDomain"),"primary"); - $self->{'domain'}=$self->getDomainInfo($r->param("ispmanDomain")); - $self->getDNSmXRecords($r->param("ispmanDomain")); - - + my $self = shift; + my $r = shift; + return + unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" ); + $self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") ); + $self->getDNSmXRecords( $r->param("ispmanDomain") ); - my $template=""; - if ($self->isDomainEditable($r->param("ispmanDomain"))) { - $template=$self->getTemplate("dns/edit_MXrecords.tmpl"); - } else { - $template=$self->getTemplate("dns/view_MXrecords.tmpl"); - } - print $template->fill_in(PACKAGE => "ISPMan"); + my $template = ""; + if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) { + $template = $self->getTemplate("dns/edit_MXrecords.tmpl"); + } + else { + $template = $self->getTemplate("dns/view_MXrecords.tmpl"); + } + print $template->fill_in( PACKAGE => "ISPMan" ); } - sub addDNSmXRecord { - my $self=shift; - my $r=shift; - $self->newDNSRecord($r->param("ispmanDomain"), "mXRecord", $r->param("origion"), join " ", ($r->param("pref"), $r->param("host"))); - $self->editDNSmXRecords($r); + my $self = shift; + my $r = shift; + $self->newDNSRecord( $r->param("ispmanDomain"), + "mXRecord", $r->param("origion"), join " ", + ( $r->param("pref"), $r->param("host") ) ); + $self->editDNSmXRecords($r); } +sub modifyDNSmXRecord { + my $self = shift; + my $r = shift; + # add/update record or delete? + if ( $r->param("host") and $r->param("origion") and $r->param("pref") ) { + # delete old record + $self->deleteEntry( $r->param("dn") ); + # add record + $self->addDNSmXRecord($r); + } + else { - - -sub modifyDNSmXRecord { - my $self=shift; - my $r=shift; - - # add/update record or delete? - if ($r->param("host") and $r->param("origion") and $r->param("pref")) { - # delete old record - $self->deleteEntry($r->param("dn")); - # add record - $self->addDNSmXRecord($r); - } else { - # FIXME - # Quick&Dirty Patch to delete record. Better do this with direct action in web form - my $entry=$self->getEntry($r->param("dn")); - $self->deleteDNSRecord($r->param("ispmanDomain"), "mXRecord", $entry->get_value("relativeDomainName"), $entry->get_value("mXRecord")); - $self->editDNSmXRecords($r); - } +# FIXME +# Quick&Dirty Patch to delete record. Better do this with direct action in web form + my $entry = $self->getEntry( $r->param("dn") ); + $self->deleteDNSRecord( + $r->param("ispmanDomain"), + "mXRecord", + $entry->get_value("relativeDomainName"), + $entry->get_value("mXRecord") + ); + $self->editDNSmXRecords($r); + } } - sub getFirstMX { - my $self=shift; - my $domain=shift; - my $mxrecords=$self->getDNSmXRecords($domain); - return unless $mxrecords; # dont bother to sort if there is no records - + my $self = shift; + my $domain = shift; + my $mxrecords = $self->getDNSmXRecords($domain); + return unless $mxrecords; # dont bother to sort if there is no records - # sort mx array, so origin record (@) with highest priority (lowest value) is at top - my @sorted=sort { $a->{'origion'} cmp $b->{'origion'} || $a->{'pref'} <=> $b->{'pref'}} @$mxrecords; +# sort mx array, so origin record (@) with highest priority (lowest value) is at top + my @sorted = sort { + $a->{'origion'} cmp $b->{'origion'} || $a->{'pref'} <=> $b->{'pref'} + } @$mxrecords; - return $sorted[0]{'host'}; + return $sorted[0]{'host'}; } 1; Index: Arecords.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/Arecords.pm,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- Arecords.pm 24 May 2004 20:14:32 -0000 1.17 +++ Arecords.pm 30 May 2004 23:35:38 -0000 1.18 @@ -5,27 +5,25 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( -isArecord -editDNSaRecords -addDNSaRecord -modifyDNSaRecord -getDNSaRecords + isArecord + editDNSaRecords + addDNSaRecord + modifyDNSaRecord + getDNSaRecords ); $VERSION = '0.01'; - - sub isArecord { - my $self=shift; - my $host=shift; - my $domain=shift; - my $branch=join",", ("ou=aRecord", $self->getDNSDN($domain)); - my $filter="relativeDomainName=$host"; - - if ($self->getConfig("debug") >2) { - print qq| + my $self = shift; + my $host = shift; + my $domain = shift; + my $branch = join ",", ( "ou=aRecord", $self->getDNSDN($domain) ); + my $filter = "relativeDomainName=$host"; + + if ( $self->getConfig("debug") > 2 ) { + print qq| ISPMan::DNSMan::Arecords->isArecord Getting input: @@ -36,103 +34,113 @@ branch: $branch filter:$filter |; - print "EntryExists: ", $self->entryExists($branch, $filter); - } + print "EntryExists: ", $self->entryExists( $branch, $filter ); + } - return $self->entryExists($branch, $filter); + return $self->entryExists( $branch, $filter ); } - - sub getDNSaRecords { - my $self=shift; - my $domain=shift; - my $relativeDomainName=shift; - my $filter; - if ($relativeDomainName) { - $filter="&(objectclass=dnsZone)(aRecord=*)(relativeDomainName=$relativeDomainName)"; - } else { - $filter="&(objectclass=dnsZone)(aRecord=*)"; - } - my $dn=$self->getDNSDN($domain); + my $self = shift; + my $domain = shift; + my $relativeDomainName = shift; + my $filter; + if ($relativeDomainName) { + $filter = +"&(objectclass=dnsZone)(aRecord=*)(relativeDomainName=$relativeDomainName)"; + } + else { + $filter = "&(objectclass=dnsZone)(aRecord=*)"; + } + my $dn = $self->getDNSDN($domain); - my $h=$self->getEntriesAsHashRef($dn, $filter, ["aRecord", "relativeDomainName", "pTRRecord"]); - - my $records; - $self->{'domain'}{'dns'}=(); - undef $self->{'domain'}{'dns'}; - for my $hdn (sort keys %$h){ - $records=$self->as_arrayref($h->{$hdn}{'aRecord'}); - for (@$records) { + my $h = + $self->getEntriesAsHashRef( $dn, $filter, + [ "aRecord", "relativeDomainName", "pTRRecord" ] ); - push @{$self->{'domain'}{'dns'}}, - { - 'host' => $h->{$hdn}{'relativeDomainName'}, - 'ptr' => $h->{$hdn}{'pTRRecord'}, - 'ip' => $_ - }; - } - } - return $self->{'domain'}{'dns'}; + my $records; + $self->{'domain'}{'dns'} = (); + undef $self->{'domain'}{'dns'}; + for my $hdn ( sort keys %$h ) { + $records = $self->as_arrayref( $h->{$hdn}{'aRecord'} ); + for (@$records) { + + push @{ $self->{'domain'}{'dns'} }, + { + 'host' => $h->{$hdn}{'relativeDomainName'}, + 'ptr' => $h->{$hdn}{'pTRRecord'}, + 'ip' => $_ + }; + } + } + return $self->{'domain'}{'dns'}; } sub editDNSaRecords { - my $self=shift; - my $r=shift; - - return unless $self->checkDomainType($r->param("ispmanDomain"),"primary"); - $self->{'domain'}=$self->getDomainInfo($r->param("ispmanDomain")); + my $self = shift; + my $r = shift; - - - $self->getDNSaRecords($r->param("ispmanDomain")); + return + unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" ); + $self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") ); + $self->getDNSaRecords( $r->param("ispmanDomain") ); - my $template=""; - if ($self->isDomainEditable($r->param("ispmanDomain"))) { - $template=$self->getTemplate("dns/edit_Arecords.tmpl"); - } else { - $template=$self->getTemplate("dns/view_Arecords.tmpl"); - } - print $template->fill_in(PACKAGE => "ISPMan"); + my $template = ""; + if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) { + $template = $self->getTemplate("dns/edit_Arecords.tmpl"); + } + else { + $template = $self->getTemplate("dns/view_Arecords.tmpl"); + } + print $template->fill_in( PACKAGE => "ISPMan" ); } - sub modifyDNSaRecord { - my $self=shift; - my $r=shift; + my $self = shift; + my $r = shift; - # add/update record or delete? - if ($r->param("host") and $r->param("ip")) { - # delete old record - $self->deleteEntry($r->param("dn")); - # add record - $self->addDNSaRecord($r); - } else { - # FIXME - # Quick&Dirty Patch to delete record. Better do this with direct action in web form - my $entry=$self->getEntry($r->param("dn")); - $self->deleteDNSRecord($r->param("ispmanDomain"), "aRecord", $entry->get_value("relativeDomainName"), $entry->get_value("aRecord")); - $self->editDNSaRecords($r); - } -} + # add/update record or delete? + if ( $r->param("host") and $r->param("ip") ) { + # delete old record + $self->deleteEntry( $r->param("dn") ); -sub addDNSaRecord { - my $self=shift; - my $r=shift; - my $extraHash={}; + # add record + $self->addDNSaRecord($r); + } + else { - 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"), "aRecord", $r->param("host"), $r->param("ip"), $extraHash); - } - $self->editDNSaRecords($r); +# FIXME +# Quick&Dirty Patch to delete record. Better do this with direct action in web form + my $entry = $self->getEntry( $r->param("dn") ); + $self->deleteDNSRecord( + $r->param("ispmanDomain"), + "aRecord", + $entry->get_value("relativeDomainName"), + $entry->get_value("aRecord") + ); + $self->editDNSaRecords($r); + } } +sub addDNSaRecord { + 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"), + "aRecord", $r->param("host"), $r->param("ip"), $extraHash ); + } + $self->editDNSaRecords($r); +} 1; __END__ Index: SOArecords.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/SOArecords.pm,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- SOArecords.pm 24 May 2004 20:14:32 -0000 1.18 +++ SOArecords.pm 30 May 2004 23:35:38 -0000 1.19 @@ -5,146 +5,138 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( - editDNSsOARecords - modifyDNSsOARecords - getSOA - touchSOA - setDNSsOARecord - updateSOASerial + editDNSsOARecords + modifyDNSsOARecords + getSOA + touchSOA + setDNSsOARecord + updateSOASerial ); $VERSION = '0.01'; +sub editDNSsOARecords { + my $self = shift; + my $r = shift; + return + unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" ); + $self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") ); -sub editDNSsOARecords { - my $self=shift; - my $r=shift; - - return unless $self->checkDomainType($r->param("ispmanDomain"),"primary"); - $self->{'domain'}=$self->getDomainInfo($r->param("ispmanDomain")); - - - $self->{'domain'}{'dns'}=$self->getSOA($r->param("ispmanDomain")); - my $template=""; - if ($self->isDomainEditable($r->param("ispmanDomain"))) { - $template=$self->getTemplate("dns/edit_SOA.tmpl"); - } else { - $template=$self->getTemplate("dns/view_SOA.tmpl"); - } - print $template->fill_in(PACKAGE => "ISPMan"); + $self->{'domain'}{'dns'} = $self->getSOA( $r->param("ispmanDomain") ); + my $template = ""; + if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) { + $template = $self->getTemplate("dns/edit_SOA.tmpl"); + } + else { + $template = $self->getTemplate("dns/view_SOA.tmpl"); + } + print $template->fill_in( PACKAGE => "ISPMan" ); } - - - - sub modifyDNSsOARecords { - my $self=shift; - my $r=shift; - my $soa=$self->getSOA($r->param('ispmanDomain')); - $soa->{'serial'} = $self->updateSOASerial($soa->{'serial'}); - - $self->delTree($self->getsOARecordDn($r->param("ispmanDomain"))); - $self->setDNSsOARecord($r->param("ispmanDomain"), $r->param('primary'), - $r->param('rootmail'), - $soa->{'serial'}, - $r->param('refresh'), - $r->param('retry'), - $r->param('expire'), - $r->param('minimum') - ); + my $self = shift; + my $r = shift; + my $soa = $self->getSOA( $r->param('ispmanDomain') ); + $soa->{'serial'} = $self->updateSOASerial( $soa->{'serial'} ); - $self->editDNSsOARecords($r); -} + $self->delTree( $self->getsOARecordDn( $r->param("ispmanDomain") ) ); + $self->setDNSsOARecord( + $r->param("ispmanDomain"), $r->param('primary'), + $r->param('rootmail'), $soa->{'serial'}, + $r->param('refresh'), $r->param('retry'), + $r->param('expire'), $r->param('minimum') + ); + $self->editDNSsOARecords($r); +} sub setDNSsOARecord { - my $self=shift; - my $domain=shift; - my $soa=join(" ", @_); - $self->newDNSRecord($domain, "sOARecord", '@', $soa); + my $self = shift; + my $domain = shift; + my $soa = join( " ", @_ ); + $self->newDNSRecord( $domain, "sOARecord", '@', $soa ); } - - - sub getSOA { - my $self=shift; - my $domain=shift; - - - my $dn=$self->getsOARecordDn($domain); - my $soa={}; - my $h=$self->getEntryAsHashRef($dn, "objectclass=dnsZone", ["sOARecord"], "sub"); + my $self = shift; + my $domain = shift; + my $dn = $self->getsOARecordDn($domain); + my $soa = {}; + my $h = + $self->getEntryAsHashRef( $dn, "objectclass=dnsZone", ["sOARecord"], + "sub" ); - ($soa->{'primary'}, $soa->{'rootmail'}, $soa->{'serial'}, $soa->{'refresh'}, $soa->{'retry'}, $soa->{'expire'}, $soa->{'minimum'})= - split(/\s\s*/, $h->{'sOARecord'}); - return $soa; + ( + $soa->{'primary'}, $soa->{'rootmail'}, $soa->{'serial'}, + $soa->{'refresh'}, $soa->{'retry'}, $soa->{'expire'}, + $soa->{'minimum'} + ) + = split( /\s\s*/, $h->{'sOARecord'} ); + return $soa; } - sub touchSOA { - my $self=shift; - my $domain=shift; + my $self = shift; + my $domain = shift; - my $soa=$self->getSOA($domain); + my $soa = $self->getSOA($domain); - $soa->{'serial'} = $self->updateSOASerial($soa->{'serial'}); - - $self->delTree($self->getsOARecordDn($domain)); - $self->setDNSsOARecord($domain, - $soa->{'primary'}, - $soa->{'rootmail'}, - $soa->{'serial'}, - $soa->{'refresh'}, - $soa->{'retry'}, - $soa->{'expire'}, - $soa->{'minimum'} - ); -} + $soa->{'serial'} = $self->updateSOASerial( $soa->{'serial'} ); + $self->delTree( $self->getsOARecordDn($domain) ); + $self->setDNSsOARecord( + $domain, $soa->{'primary'}, $soa->{'rootmail'}, + $soa->{'serial'}, $soa->{'refresh'}, $soa->{'retry'}, + $soa->{'expire'}, $soa->{'minimum'} + ); +} sub getDNSnSRecords { - my $self=shift; - my $domain=shift; - - my $dn=$self->getDNSDN($domain); - my $h=$self->getEntriesAsHashRef($dn, "&(objectclass=dnsZone)(nSRecord=*)", ["nSRecord", "relativeDomainName"]); + my $self = shift; + my $domain = shift; + + my $dn = $self->getDNSDN($domain); + my $h = $self->getEntriesAsHashRef( + $dn, + "&(objectclass=dnsZone)(nSRecord=*)", + [ "nSRecord", "relativeDomainName" ] + ); } # updateSOASerial - generates the correct serial for the record. # correct format: YYYYMMDDnn sub updateSOASerial { - my $self=shift; - my $serial=shift; - - if ($self->{'Config'}->{'DNSSerialFormat'} eq 'timestamp') { + my $self = shift; + my $serial = shift; + + if ( $self->{'Config'}->{'DNSSerialFormat'} eq 'timestamp' ) { return time(); } - + my @localtime = localtime(); - my $year = $localtime[5] + 1900; - my $month = $localtime[4] + 1; - my $day = $localtime[3] ; - - my $index = substr($serial,-2,2); - my $olddate = substr($serial,0,8); - - $day = "0$day" if ($day < 10); - $month = "0$month" if ($month < 10); - - my $newdate = $year.$month.$day; - - if ($olddate ne $newdate) { - $serial = $newdate."01"; - } elsif ($olddate == $newdate) { + my $year = $localtime[5] + 1900; + my $month = $localtime[4] + 1; + my $day = $localtime[3]; + + my $index = substr( $serial, -2, 2 ); + my $olddate = substr( $serial, 0, 8 ); + + $day = "0$day" if ( $day < 10 ); + $month = "0$month" if ( $month < 10 ); + + my $newdate = $year . $month . $day; + + if ( $olddate ne $newdate ) { + $serial = $newdate . "01"; + } + elsif ( $olddate == $newdate ) { $index++; $serial = $olddate . $index; } - + return $serial; } Index: NSrecords.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/NSrecords.pm,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- NSrecords.pm 24 May 2004 20:14:32 -0000 1.14 +++ NSrecords.pm 30 May 2004 23:35:38 -0000 1.15 @@ -5,99 +5,103 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( - editDNSnSRecords - addDNSnSRecord - modifyDNSnSRecord - getDNSnSRecords + editDNSnSRecords + addDNSnSRecord + modifyDNSnSRecord + getDNSnSRecords ); $VERSION = '0.01'; +sub getDNSnSRecords { + my $self = shift; + my $domain = shift; + my $dn = $self->getDNSDN($domain); + my $h = $self->getEntriesAsHashRef( + $dn, + "&(objectclass=dnsZone)(nSRecord=*)", + [ "nSRecord", "relativeDomainName" ] + ); -sub getDNSnSRecords { - my $self=shift; - my $domain=shift; - - my $dn=$self->getDNSDN($domain); - my $h=$self->getEntriesAsHashRef($dn, "&(objectclass=dnsZone)(nSRecord=*)", ["nSRecord", "relativeDomainName"]); + my $records = (); + $self->{'domain'}{'dns'} = (); + undef $self->{'domain'}{'dns'}; - my $records=(); - $self->{'domain'}{'dns'}=(); - undef $self->{'domain'}{'dns'}; + for my $hdn ( keys %$h ) { + $records = $self->as_arrayref( $h->{$hdn}{'nSRecord'} ); + for (@$records) { + push @{ $self->{'domain'}{'dns'} }, + { + 'origion' => $h->{$hdn}{'relativeDomainName'}, + 'host' => $_ + }; + } + } - for my $hdn (keys %$h){ - $records=$self->as_arrayref($h->{$hdn}{'nSRecord'}); - for (@$records) { - push @{$self->{'domain'}{'dns'}}, - { - 'origion' => $h->{$hdn}{'relativeDomainName'}, - 'host' => $_ - }; - } - } - - return $self->{'domain'}{'dns'}; + return $self->{'domain'}{'dns'}; } - sub editDNSnSRecords { - my $self=shift; - my $r=shift; - my $dn=$r->param("dn"); - return unless $self->checkDomainType($r->param("ispmanDomain"),"primary"); - $self->{'domain'}=$self->getDomainInfo($r->param("ispmanDomain")); - $self->getDNSnSRecords($r->param("ispmanDomain")); - + my $self = shift; + my $r = shift; + my $dn = $r->param("dn"); + return + unless $self->checkDomainType( $r->param("ispmanDomain"), "primary" ); + $self->{'domain'} = $self->getDomainInfo( $r->param("ispmanDomain") ); + $self->getDNSnSRecords( $r->param("ispmanDomain") ); - my $template=""; - if ($self->isDomainEditable($r->param("ispmanDomain"))) { - $template=$self->getTemplate("dns/edit_NSrecords.tmpl"); - } else { - $template=$self->getTemplate("dns/view_NSrecords.tmpl"); - } - print $template->fill_in(PACKAGE => "ISPMan"); + my $template = ""; + if ( $self->isDomainEditable( $r->param("ispmanDomain") ) ) { + $template = $self->getTemplate("dns/edit_NSrecords.tmpl"); + } + else { + $template = $self->getTemplate("dns/view_NSrecords.tmpl"); + } + print $template->fill_in( PACKAGE => "ISPMan" ); } +sub modifyDNSnSRecord { + my $self = shift; + my $r = shift; + # add/update record or delete? + if ( $r->param("host") and $r->param("origion") ) { + # delete old record + $self->deleteEntry( $r->param("dn") ); + # add record + $self->addDNSnSRecord($r); + } + else { - -sub modifyDNSnSRecord { - my $self=shift; - my $r=shift; - # add/update record or delete? - if ($r->param("host") and $r->param("origion")) { - # delete old record - $self->deleteEntry($r->param("dn")); - # add record - $self->addDNSnSRecord($r); - } else { - # FIXME - # Quick&Dirty Patch to delete record. Better do this with direct action in web form - my $entry=$self->getEntry($r->param("dn")); - $self->deleteDNSRecord($r->param("ispmanDomain"), "nSRecord", $entry->get_value("relativeDomainName"), $entry->get_value("nSRecord")); - $self->editDNSnSRecords($r); - } +# FIXME +# Quick&Dirty Patch to delete record. Better do this with direct action in web form + my $entry = $self->getEntry( $r->param("dn") ); + $self->deleteDNSRecord( + $r->param("ispmanDomain"), + "nSRecord", + $entry->get_value("relativeDomainName"), + $entry->get_value("nSRecord") + ); + $self->editDNSnSRecords($r); + } } - - sub addDNSnSRecord { - my $self=shift; - my $r=shift; - $self->newDNSRecord($r->param("ispmanDomain"), "nSRecord", $r->param("origion"), $r->param("host")); - $self->editDNSnSRecords($r); + my $self = shift; + my $r = shift; + $self->newDNSRecord( + $r->param("ispmanDomain"), "nSRecord", + $r->param("origion"), $r->param("host") + ); + $self->editDNSnSRecords($r); } - - - - 1; __END__ Index: LDIFUtils.pm =================================================================== RCS file: /cvsroot/ispman/ispman/lib/ISPMan/DNSMan/LDIFUtils.pm,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- LDIFUtils.pm 2 Aug 2003 23:43:38 -0000 1.2 +++ LDIFUtils.pm 30 May 2004 23:35:38 -0000 1.3 @@ -5,126 +5,134 @@ require Exporter; --dfGzR35o/[email protected] = qw(Exporter AutoLoader); +-dfGzR35o/[email protected] = qw(Exporter AutoLoader); @EXPORT = qw( - make_ldif_aRecord - make_ldif_mXRecord - make_ldif_nSRecord - make_ldif_cNAMERecord - make_ldif_sOARecord + make_ldif_aRecord + make_ldif_mXRecord + make_ldif_nSRecord + make_ldif_cNAMERecord + make_ldif_sOARecord ); $VERSION = '0.01'; sub make_ldif_aRecord { - my $self=shift; - my ($domain, $host, $ip)=@_; - $self->prepareBranchForDN($self->getARecordBranchDn($domain, $ip)); - my $dn=$self->getARecordDn($domain, $host, $ip); - my $ldif= join ("\n", ( - "dn: $dn", - "objectClass: top", - "objectClass: dnsZone", - "relativeDomainName: $host", - "zoneName: $domain", - "aRecord: $ip" - ) - ); - return $ldif; + my $self = shift; + my ( $domain, $host, $ip ) = @_; + $self->prepareBranchForDN( $self->getARecordBranchDn( $domain, $ip ) ); + my $dn = $self->getARecordDn( $domain, $host, $ip ); + my $ldif = join( + "\n", + ( + "dn: $dn", + "objectClass: top", + "objectClass: dnsZone", + "relativeDomainName: $host", + "zoneName: $domain", + "aRecord: $ip" + ) + ); + return $ldif; } - sub make_ldif_mXRecord { - my $self=shift; - my ($domain, $origion, $pref, $host)=@_; - $self->prepareBranchForDN($self->getmXRecordBranchDn($domain, $pref, $host)); - my $dn=$self->getmXRecordDn($domain, $origion , $pref, $host); - my $ldif= join ("\n", ( - "dn: $dn", - "objectClass: top", - "objectClass: dnsZone", - "relativeDomainName: $origion", - "zoneName: $domain", - "mXRecord: $pref $host" - ) - ); - return $ldif; + my $self = shift; + my ( $domain, $origion, $pref, $host ) = @_; + $self->prepareBranchForDN( + $self->getmXRecordBranchDn( $domain, $pref, $host ) ); + my $dn = $self->getmXRecordDn( $domain, $origion, $pref, $host ); + my $ldif = join( + "\n", + ( + "dn: $dn", + "objectClass: top", + "objectClass: dnsZone", + "relativeDomainName: $origion", + "zoneName: $domain", + "mXRecord: $pref $host" + ) + ); + return $ldif; } - sub make_ldif_nSRecord { - my $self=shift; - my ($domain, $origion, $host)=@_; - $self->prepareBranchForDN($self->getnSRecordBranchDn($domain, $host)); - my $dn=$self->getnSRecordDn($domain, $origion, $host); - my $ldif= join ("\n", ( - "dn: $dn", - "objectClass: top", - "objectClass: dnsZone", - "relativeDomainName: $origion", - "zoneName: $domain", - "nSRecord: $host" - ) - ); - return $ldif; + my $self = shift; + my ( $domain, $origion, $host ) = @_; + $self->prepareBranchForDN( $self->getnSRecordBranchDn( $domain, $host ) ); + my $dn = $self->getnSRecordDn( $domain, $origion, $host ); + my $ldif = join( + "\n", + ( + "dn: $dn", + "objectClass: top", + "objectClass: dnsZone", + "relativeDomainName: $origion", + "zoneName: $domain", + "nSRecord: $host" + ) + ); + return $ldif; } - sub make_ldif_cNAMERecord { - my $self=shift; - my ($domain, $host, $alias)=@_; - $self->prepareBranchForDN($self->getcNAMERecordBranchDn($domain, $host)); - my $dn=$self->getcNAMERecordDn($domain, $host, $alias); - my $ldif= join ("\n", ( - "dn: $dn", - "objectClass: top", - "objectClass: dnsZone", - "relativeDomainName: $alias", - "zoneName: $domain", - "cNAMERecord: $host" - ) - ); - return $ldif; + my $self = shift; + my ( $domain, $host, $alias ) = @_; + $self->prepareBranchForDN( + $self->getcNAMERecordBranchDn( $domain, $host ) ); + my $dn = $self->getcNAMERecordDn( $domain, $host, $alias ); + my $ldif = join( + "\n", + ( + "dn: $dn", + "objectClass: top", + "objectClass: dnsZone", + "relativeDomainName: $alias", + "zoneName: $domain", + "cNAMERecord: $host" + ) + ); + return $ldif; } +sub make_ldif_sOARecord { + my $self = shift; + my ( $domain, $refresh, $retry, $expire, $min ) = @_; + my $record = join( + " ", + ( + $self->staticHost( $self->getConf("primaryDNS") ), + $self->staticHost( $self->getConf("dnsMasterEmail") ), + time(), + $refresh, + $retry, + $expire, + $min + ) + ); + my $branch = join ",", + ( "sOARecord=$record", $self->getsOARecordDn($domain) ); -sub make_ldif_sOARecord { - my $self=shift; - my ($domain, $refresh, $retry , $expire, $min)=@_; - my $record =join(" ", ( - $self->staticHost( - $self->getConf("primaryDNS")), - $self->staticHost($self->getConf("dnsMasterEmail")), - time(), - $refresh, - $retry, - $expire, - $min - ) - ); + #print "Branch: $branch\n"; - my $branch = join ",", ("sOARecord=$record", $self->getsOARecordDn($domain)); + $self->prepareBranchForDN($branch); + my $dn = join ',', ( 'relativeDomainName=@', $branch ); - #print "Branch: $branch\n"; + my $ldif = join( + "\n", + ( + "dn: $dn", + "objectClass: top", + "objectClass: dnsZone", + "relativeDomainName: @", + "zoneName: $domain", + "sOARecord: $record" + ) + ); + return $ldif; - $self->prepareBranchForDN($branch); - my $dn= join ',', ('relativeDomainName=@' , $branch); - - my $ldif= join ("\n", ( - "dn: $dn", - "objectClass: top", - "objectClass: dnsZone", - "relativeDomainName: @", - "zoneName: $domain", - "sOARecord: $record" - ) - ); - return $ldif; - - #print "DN: $dn\n"; + #print "DN: $dn\n"; - return; + return; } - ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click