Changeset 290 for trunk/DNSDB.pm
- Timestamp:
- 03/27/12 14:57:39 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/DNSDB.pm
r289 r290 2694 2694 my $id = shift; 2695 2695 2696 my $sth = $dbh->prepare("DELETE FROM "._rectable($defrec,$revrec)." WHERE record_id=?"); 2697 $sth->execute($id); 2698 2699 return ('FAIL',"Couldn't remove record: ".$sth->errstr) if $sth->err; 2700 2701 return ('OK','OK'); 2696 my $oldrec = getRecLine($dbh, $defrec, $revrec, $id); 2697 2698 # Allow transactions, and raise an exception on errors so we can catch it later. 2699 # Use local to make sure these get "reset" properly on exiting this block 2700 local $dbh->{AutoCommit} = 0; 2701 local $dbh->{RaiseError} = 1; 2702 2703 # Put together the log entry 2704 my %logdata; 2705 $logdata{domain_id} = $oldrec->{domain_id}; 2706 $logdata{rdns_id} = $oldrec->{rdns_id}; 2707 $logdata{group_id} = $oldrec->{group_id} if $defrec eq 'y'; 2708 $logdata{group_id} = parentID($dbh, 2709 (id => $oldrec->{domain_id}, type => ($revrec eq 'n' ? 'domain' : 'revzone'), revrec => $revrec) ) 2710 if $defrec eq 'n'; 2711 $logdata{entry} = "Deleted ".($defrec eq 'y' ? 'default record ' : 'record '). 2712 "'$oldrec->{host} $typemap{$oldrec->{type}} $oldrec->{val}"; 2713 $logdata{entry} .= " [distance $oldrec->{distance}]" if $typemap{$oldrec->{type}} eq 'MX'; 2714 $logdata{entry} .= " [priority $oldrec->{distance}] [weight $oldrec->{weight}] [port $oldrec->{port}]" 2715 if $typemap{$oldrec->{type}} eq 'SRV'; 2716 $logdata{entry} .= "', TTL $oldrec->{ttl}\n"; 2717 2718 eval { 2719 my $sth = $dbh->do("DELETE FROM "._rectable($defrec,$revrec)." WHERE record_id=?", undef, ($id)); 2720 _log($dbh, %logdata); 2721 $dbh->commit; 2722 }; 2723 if ($@) { 2724 my $msg = $@; 2725 eval { $dbh->rollback; }; 2726 if ($config{log_failures}) { 2727 $logdata{entry} = "Error deleting ".($defrec eq 'y' ? 'default record' : 'record'). 2728 " '$oldrec->{host} $typemap{$oldrec->{type}} $oldrec->{val}', TTL $oldrec->{ttl} ($msg)"; 2729 _log($dbh, %logdata); 2730 $dbh->commit; 2731 } 2732 return ('FAIL', $msg); 2733 } 2734 2735 return ('OK',$logdata{entry}); 2702 2736 } # end delRec() 2703 2737
Note:
See TracChangeset
for help on using the changeset viewer.