package ISPMan::DNSMan::MXrecords; use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $Config); require Exporter; @ISA = qw(Exporter AutoLoader); @EXPORT = qw( editmxrecords addmxrecord modifymxrecords ); $VERSION = '0.01'; use ISPMan::Config; $Config=ISPMan::Config->new(); sub editmxrecords { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my $entry=$self->{'ldap'}->getEntry($dn); my @records=$entry->get_value("record"); print $r->param('domain'), "::MX Records

"; print qq|
|; print qq| |; for (@records) { my ($origion, $pref, $host)=split(/\s*,\s*/, $_); print qq| |; } print qq| |; print qq| |; print "
Origion Host Priority
Discard Changes Apply Changes
Add new record
  Save new Entry
"; } sub addmxrecord { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my $record=join ',', ($r->param("origion"), $r->param("pref"), $r->param("host")); $r->param("record", $record); $self->{'ldap'}->addEntry($r); $self->editmxrecords($r); } sub modifymxrecords { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my (@hosts, @prefs, @origions); for ($r->param("host")) { push @hosts, $_ if $_; } for ($r->param("origion")) { $_||='@'; push @origions, $_ ; } for ($r->param("pref")) { $_||=10; push @prefs, $_ if $_; } my @records=map{"$origions[$_], $prefs[$_], $hosts[$_]"}0..$#hosts; $r->param("record", \@records); $self->{'ldap'}->updateEntry($r); $self->editmxrecords($r); } 1; __END__