package ISPMan::DNSMan::CNAMES; use strict; use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $Config); require Exporter; @ISA = qw(Exporter AutoLoader); @EXPORT = qw( editcnames addcname modifycnames ); $VERSION = '0.01'; use ISPMan::Config; $Config=ISPMan::Config->new(); sub editcnames { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my ($entry)=$self->{'ldap'}->getEntry($dn); print $r->param('domain'), "::CNAMES

"; print qq| \n |; my @records=$entry->get_value("record"); if (@records) { print qq| |; for (@records) { my ($alias, $host)=split(/\s*,\s*/, $_); print qq| |; } print qq| |; } print qq| |; print "
Alias Hostname
Discard Changes Apply Changes

  Save new Entry
"; } sub modifycnames { my $self=shift; my $r=shift; my $dn=$r->param("dn"); my (@aliases, @hosts); for ($r->param("host")) { push @hosts, $_ if /\S/; } for ($r->param("alias")) { push @aliases, $_ if /\S/; } my @records=map{"$aliases[$_], $hosts[$_]"}0..$#hosts; $r->param("record", \@records); $self->{'ldap'}->updateEntry($r); $self->editcnames($r); } sub addcname { my $self=shift; my $r=shift; if ($r->param("host")){ my $record=join ',', ($r->param("host"), $r->param("alias")); $r->param("record", $record); $self->{'ldap'}->addEntry($r); } $self->editcnames($r); } 1; __END__