Changeset 243 for trunk/DNSDB.pm


Ignore:
Timestamp:
02/24/12 15:35:07 (12 years ago)
Author:
Kris Deugau
Message:

/trunk

Fixing up delRec() and caller to handle reverse records. See #26.

  • make sure to pass $webvar{revrec} around everywhere
  • extend getRecLine to properly retrieve information for any record
  • make sure another couple of changepage() calls bounce you to the right place
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/DNSDB.pm

    r242 r243  
    18221822## DNSDB::getRecLine()
    18231823# Return all data fields for a zone record in separate elements of a hash
    1824 # Takes a database handle, default/live flag, and record ID
     1824# Takes a database handle, default/live flag, forward/reverse flag, and record ID
    18251825sub getRecLine {
    18261826  $errstr = '';
    18271827  my $dbh = shift;
    1828   my $def = shift;
     1828  my $defrec = shift;
     1829  my $revrec = shift;
    18291830  my $id = shift;
    18301831
    1831   my $sql = "SELECT record_id,host,type,val,distance,weight,port,ttl".
    1832         (($def eq 'def' or $def eq 'y') ? ',group_id FROM default_' : ',domain_id FROM ').
    1833         "records WHERE record_id=?";
     1832  my $sql = "SELECT record_id,host,type,val,ttl".($revrec eq 'n' ? ',distance,weight,port' : '').
     1833        (($defrec eq 'y') ? ',group_id FROM ' : ',domain_id,rdns_id FROM ').
     1834        _rectable($defrec,$revrec)." WHERE record_id=?";
    18341835  my $ret = $dbh->selectrow_hashref($sql, undef, ($id) );
    18351836
     
    18441845  }
    18451846
    1846   $ret->{parid} = (($def eq 'def' or $def eq 'y') ? $ret->{group_id} : $ret->{domain_id});
     1847  # explicitly set a parent id
     1848  if ($defrec eq 'y') {
     1849    $ret->{parid} = $ret->{group_id};
     1850  } else {
     1851    $ret->{parid} = (($revrec eq 'n') ? $ret->{domain_id} : $ret->{rdns_id});
     1852    # and a secondary if we have a custom type that lives in both a forward and reverse zone
     1853    $ret->{secid} = (($revrec eq 'y') ? $ret->{domain_id} : $ret->{rdns_id}) if $ret->{type} > 65279;
     1854  }
    18471855
    18481856  return $ret;
     
    20972105  my $dbh = shift;
    20982106  my $defrec = shift;
     2107  my $revrec = shift;
    20992108  my $id = shift;
    21002109
    2101   my $sth = $dbh->prepare("DELETE FROM ".($defrec eq 'y' ? 'default_' : '')."records WHERE record_id=?");
     2110  my $sth = $dbh->prepare("DELETE FROM "._rectable($defrec,$revrec)." WHERE record_id=?");
    21022111  $sth->execute($id);
    21032112
Note: See TracChangeset for help on using the changeset viewer.