diff options
| author | ivan <ivan> | 2002-03-18 09:10:12 +0000 | 
|---|---|---|
| committer | ivan <ivan> | 2002-03-18 09:10:12 +0000 | 
| commit | daac302e231e2e09b84e771c0413b0f2119c52e8 (patch) | |
| tree | bbe52639e866c9016ebe2d342308ee92de2532ab /FS | |
| parent | 697dfd9ac2dfa36aa244e6d2d9f2e8f8a364a120 (diff) | |
new config value `defaultrecords', documentation, javascript config file editor
Diffstat (limited to 'FS')
| -rw-r--r-- | FS/FS/Conf.pm | 22 | ||||
| -rw-r--r-- | FS/FS/svc_domain.pm | 85 | 
2 files changed, 33 insertions, 74 deletions
| diff --git a/FS/FS/Conf.pm b/FS/FS/Conf.pm index 5dba387fe..18725ced2 100644 --- a/FS/FS/Conf.pm +++ b/FS/FS/Conf.pm @@ -437,28 +437,40 @@ httemplate/docs/config.html    {      'key'         => 'mxmachines', -    'section'     => 'BIND', +    'section'     => 'deprecated',      'description' => 'MX entries for new domains, weight and machine, one per line, with trailing `.\'',      'type'        => 'textarea',    },    {      'key'         => 'nsmachines', -    'section'     => 'BIND', +    'section'     => 'deprecated',      'description' => 'NS nameservers for new domains, one per line, with trailing `.\'',      'type'        => 'textarea',    },    { -    'key'         => 'arecords', +    'key'         => 'defaultrecords',      'section'     => 'BIND', -    'description' => 'A list of tab seperated A records to add automatically when creating a domain', +    'description' => 'DNS entries add automatically when creating a domain', +    'type'        => 'editlist', +    'editlist_parts' => [ { type=>'text' }, +                          { type=>'immutable', value=>'IN' }, +                          { type=>'select', +                            select_enum=>{ map { $_=>$_ } qw(A CNAME MX NS)} }, +                          { type=> 'text' }, ], +  }, + +  { +    'key'         => 'arecords', +    'section'     => 'deprecated', +    'description' => 'A list of tab seperated CNAME records to add automatically when creating a domain',      'type'        => 'textarea',    },    {      'key'         => 'cnamerecords', -    'section'     => 'BIND', +    'section'     => 'deprecated',      'description' => 'A list of tab seperated CNAME records to add automatically when creating a domain',      'type'        => 'textarea',    }, diff --git a/FS/FS/svc_domain.pm b/FS/FS/svc_domain.pm index 1e16ba87f..d01a403d1 100644 --- a/FS/FS/svc_domain.pm +++ b/FS/FS/svc_domain.pm @@ -2,8 +2,8 @@ package FS::svc_domain;  use strict;  use vars qw( @ISA $whois_hack $conf $smtpmachine -  @mxmachines @nsmachines $soadefaultttl $soaemail $soaexpire $soamachine -  $soarefresh $soaretry $qshellmachine $nossh_hack %arecords %cnamerecords +  @defaultrecords $soadefaultttl $soaemail $soaexpire $soamachine +  $soarefresh $soaretry $qshellmachine $nossh_hack   );  use Carp;  use Mail::Internet; @@ -29,10 +29,7 @@ $FS::UID::callback{'FS::domain'} = sub {    $smtpmachine = $conf->config('smtpmachine'); -  %arecords      = map { split /\t/ } $conf->config('arecords'); -  %cnamerecords  = map { split /\t/ } $conf->config('cnamerecords'); -  @mxmachines    = $conf->config('mxmachines'); -  @nsmachines    = $conf->config('nsmachines'); +  @defaultrecords = $conf->config('defaultrecords');    $soadefaultttl = $conf->config('soadefaultttl');    $soaemail      = $conf->config('soaemail');    $soaexpire     = $conf->config('soaexpire'); @@ -119,15 +116,9 @@ in the same package, it is automatically used.  Otherwise an error is returned.  If any I<soamachine> configuration file exists, an SOA record is added to  the domain_record table (see <FS::domain_record>). -If any machines are defined in the I<nsmachines> configuration file, NS -records are added to the domain_record table (see L<FS::domain_record>). - -If any machines are defined in the I<mxmachines> configuration file, MX -records are added to the domain_record table (see L<FS::domain_record>). - -If the I<arecords> configuration file exits, A records are added to the -domain_record table.  The I<cnamerecords> file does the same thing for -CNAME records. +If any records are defined in the I<defaultrecords> configuration file, +appropriate records are added to the domain_record table (see +L<FS::domain_record>).  If a machine is defined in the I<shellmachine> configuration value, the  I<qmailmachines> configuration file exists, and the I<catchall> field points @@ -200,63 +191,19 @@ sub insert {        return "couldn't insert SOA record for new domain: $error";      } -    foreach my $nsmachine ( @nsmachines ) { -      my $ns = new FS::domain_record { -        'svcnum'  => $self->svcnum, -        'reczone' => '@', -        'recaf'   => 'IN', -        'rectype' => 'NS', -        'recdata' => $nsmachine, -      }; -      my $error = $ns->insert; -      if ( $error ) { -        $dbh->rollback if $oldAutoCommit; -        return "couldn't insert NS record for new domain: $error"; -      } -    } - -    foreach my $mxmachine ( @mxmachines ) { -      my $mx = new FS::domain_record { -        'svcnum'  => $self->svcnum, -        'reczone' => '@', -        'recaf'   => 'IN', -        'rectype' => 'MX', -        'recdata' => $mxmachine, -      }; -      my $error = $mx->insert; -      if ( $error ) { -        $dbh->rollback if $oldAutoCommit; -        return "couldn't insert MX record for new domain: $error"; -      } -    } - -    foreach my $arecord ( keys %arecords ) { -      my $arec = new FS::domain_record { -        'svcnum'  => $self->svcnum, -        'reczone' => $arecord, -        'recaf'   => 'IN', -        'rectype' => 'A', -        'recdata' => $arecords{$arecord}, -      }; -      my $error = $arec->insert; -      if ( $error ) { -        $dbh->rollback if $oldAutoCommit; -        return "WARNING: couldn't insert A record for new domain: $error"; -      } -    } - -    foreach my $cnamerecord ( keys %cnamerecords ) { -      my $cnamerec = new FS::domain_record { +    foreach my $record ( @defaultrecords ) { +      my($zone,$af,$type,$data) = split(/\s+/,$record,4); +      my $record = new FS::domain_record {          'svcnum'  => $self->svcnum, -        'reczone' => $cnamerecord, -        'recaf'   => 'IN', -        'rectype' => 'CNAME', -        'recdata' => $cnamerecords{$cnamerecord}, +        'reczone' => $zone, +        'recaf'   => $af, +        'rectype' => $type, +        'recdata' => $data,        }; -      my $error = $cnamerec->insert; +      my $error = $record->insert;        if ( $error ) {          $dbh->rollback if $oldAutoCommit; -        return "WARNING: couldn't insert CNAME record for new domain: $error"; +        return "couldn't insert record for new domain: $error";        }      } @@ -460,7 +407,7 @@ sub submit_internic {  =head1 VERSION -$Id: svc_domain.pm,v 1.25 2002-03-09 10:19:38 khoff Exp $ +$Id: svc_domain.pm,v 1.26 2002-03-18 09:10:12 ivan Exp $  =head1 BUGS | 
