Index: trunk/cgi-bin/newnode.cgi
===================================================================
--- trunk/cgi-bin/newnode.cgi	(revision 952)
+++ trunk/cgi-bin/newnode.cgi	(revision 955)
@@ -54,22 +54,27 @@
 
 my $page = HTML::Template->new(filename => "newnode.tmpl");
+print "Content-type: text/html\n\n";
 
 if ($webvar{nodename}) {
-  $sth = $dbh->prepare("insert into nodes (node_type,node_name,node_ip) values (?,?,?)");
-  $webvar{nodeip} =~ s/^\s*//;
-  $webvar{nodeip} =~ s/\s*$//;
-  $sth->execute($webvar{type}, $webvar{nodename}, $webvar{nodeip});
+  $webvar{nodename} =~ tr/a-z/A-Z/;
   $page->param(nodename => $webvar{nodename});
-  if ($sth->err) {
-    $page->param(err => $sth->errstr);
-    my $msg = "$authuser could not add node '$webvar{nodename}','$webvar{type}' to database: ".$sth->errstr;
-    mailNotify($dbh, 'f:nno', "IPDB node add failure", $msg);
-    syslog "err", $msg;
+  my @nc = $dbh->selectrow_array("SELECT node_ip FROM nodes WHERE node_name = ?", undef, $webvar{nodename});
+  if (@nc) {
+    $page->param(err => "Node with that name already exists with IP $nc[0].");
   } else {
-    syslog "notice", "$authuser added node '$webvar{nodename}'";
-  }
+    $sth = $dbh->prepare("insert into nodes (node_type,node_name,node_ip) values (?,?,?)");
+    $webvar{nodeip} =~ s/^\s*//;
+    $webvar{nodeip} =~ s/\s*$//;
+    $sth->execute($webvar{type}, $webvar{nodename}, $webvar{nodeip});
+    if ($sth->err) {
+      $page->param(err => $sth->errstr);
+      my $msg = "$authuser could not add node '$webvar{nodename}','$webvar{type}' to database: ".$sth->errstr;
+      mailNotify($dbh, 'f:nno', "IPDB node add failure", $msg);
+      syslog "err", $msg;
+    } else {
+      syslog "notice", "$authuser added node '$webvar{nodename}'";
+    }
+  } # @nc == 0
 }
-
-print "Content-type: text/html\n\n";
 
 print $page->output;
