Index: trunk/DNSDB.pm
===================================================================
--- trunk/DNSDB.pm	(revision 286)
+++ trunk/DNSDB.pm	(revision 287)
@@ -2502,4 +2502,23 @@
   my $vallen = '?'.(',?'x$#vallist);
 
+  # Put together the success log entry.  We have to use this horrible kludge
+  # because domain_id and rdns_id may or may not be present, and if they are,
+  # they're not at a guaranteed consistent index in the array.  wheee!
+  my %logdata;
+  my @ftmp = split /,/, $fields;
+  for (my $i=0; $i <= $#vallist; $i++) {
+    $logdata{domain_id} = $vallist[$i] if $ftmp[$i] eq 'domain_id';
+    $logdata{rdns_id} = $vallist[$i] if $ftmp[$i] eq 'rdns_id';
+  }
+  $logdata{group_id} = $id if $defrec eq 'y';
+  $logdata{group_id} = parentID($dbh,
+		(id => $id, type => ($revrec eq 'n' ? 'domain' : 'revzone'), revrec => $revrec) )
+	if $defrec eq 'n';
+  $logdata{entry} = "Added ".($defrec eq 'y' ? 'default record' : 'record')." '$$host $typemap{$$rectype}";
+  $logdata{entry} .= " [distance $dist]" if $typemap{$$rectype} eq 'MX';
+  $logdata{entry} .= " [priority $dist] [weight $weight] [port $port]"
+	if $typemap{$$rectype} eq 'SRV';
+  $logdata{entry} .= " $$val', TTL $ttl";
+
   # Allow transactions, and raise an exception on errors so we can catch it later.
   # Use local to make sure these get "reset" properly on exiting this block
@@ -2510,4 +2529,5 @@
     $dbh->do("INSERT INTO "._rectable($defrec, $revrec)." ($fields) VALUES ($vallen)",
 	undef, @vallist);
+    _log($dbh, %logdata);
     $dbh->commit;
   };
@@ -2518,4 +2538,5 @@
   }
 
+  $resultstr = $logdata{entry};
   return ($retcode, $retmsg);
 
Index: trunk/dns.cgi
===================================================================
--- trunk/dns.cgi	(revision 286)
+++ trunk/dns.cgi	(revision 287)
@@ -677,25 +677,8 @@
 
     if ($code eq 'OK' || $code eq 'WARN') {
-      my $restr;
-      if ($webvar{defrec} eq 'y') {
-	$restr = "Added default record '$webvar{name} $typemap{$webvar{type}}";
-	$restr .= " [distance $webvar{distance}]" if $typemap{$webvar{type}} eq 'MX';
-	$restr .= " [priority $webvar{distance}] [weight $webvar{weight}] [port $webvar{port}]"
-		if $typemap{$webvar{type}} eq 'SRV';
-	$restr .= " $webvar{address}', TTL $webvar{ttl}";
-	logaction(0, $session->param("username"), $webvar{parentid}, $restr);
-      } else {
-	$restr = "Added record '$webvar{name} $typemap{$webvar{type}}";
-	$restr .= " [distance $webvar{distance}]" if $typemap{$webvar{type}} eq 'MX';
-	$restr .= " [priority $webvar{distance}] [weight $webvar{weight}] [port $webvar{port}]"
-		if $typemap{$webvar{type}} eq 'SRV';
-	$restr .= " $webvar{address}', TTL $webvar{ttl}";
-	logaction($webvar{parentid}, $session->param("username"),
-		parentID($dbh, (id => $webvar{parentid}, type => 'domain', revrec => $webvar{revrec})), $restr);
-      }
       my %pageparams = (page => "reclist", id => $webvar{parentid},
 	defrec => $webvar{defrec}, revrec => $webvar{revrec});
-      $pageparams{warnmsg} = $msg."<br><br>\n".$restr if $code eq 'WARN';
-      $pageparams{resultmsg} = $restr if $code eq 'OK';
+      $pageparams{warnmsg} = $msg."<br><br>\n".$DNSDB::resultstr if $code eq 'WARN';
+      $pageparams{resultmsg} = $DNSDB::resultstr if $code eq 'OK';
       changepage(%pageparams);
     } else {
