- Timestamp:
- 11/07/12 17:20:58 (12 years ago)
- Location:
- trunk/cgi-bin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/cgi-bin/IPDB.pm
r544 r545 671 671 # and available='y' order by ip limit 1); 672 672 673 $sth = $dbh->prepare("select ip from poolips where pool='$alloc_from'". 674 " and available='y' order by ip"); 675 $sth->execute; 676 677 my @data = $sth->fetchrow_array; 678 $cidr = $data[0]; # $cidr is already declared when we get here! 679 680 $sth = $dbh->prepare("update poolips set custid=?,city=?,". 681 "available='n',description=?,notes=?,circuitid=?,privdata=?". 682 " where ip=?"); 683 $sth->execute($custid, $city, $desc, $notes, $circid, $privdata, "$cidr"); 673 if ($cidr) { 674 my ($isavail) = $dbh->selectrow_array("SELECT available FROM poolips WHERE ip=?", undef, ($cidr) ); 675 if ($isavail eq 'n') { 676 die "IP already allocated. Deallocate and reallocate, or update the entry\n"; 677 } 678 if (!$isavail) { 679 die "IP is not in an IP pool.\n"; 680 } 681 } else { 682 ($cidr) = $dbh->selectrow_array("SELECT ip FROM poolips WHERE pool=? AND available='y' ORDER BY ip", 683 undef, ($alloc_from) ); 684 } 685 $dbh->do("UPDATE poolips SET custid=?,city=?,available='n',description=?,notes=?,circuitid=?,privdata=? ". 686 "WHERE ip=?", undef, ($custid, $city, $desc, $notes, $circid, $privdata, $cidr) ); 687 684 688 # node hack 685 689 if ($nodeid && $nodeid ne '') { … … 688 692 } 689 693 # end node hack 694 690 695 $dbh->commit; 691 696 }; 692 697 if ($@) { 693 $msg .= ": '".$sth->errstr."'";698 $msg .= ": $@"; 694 699 eval { $dbh->rollback; }; 695 700 return ('FAIL',$msg); -
trunk/cgi-bin/admin.cgi
r544 r545 203 203 $page->param(locerr => "Invalid customer location! Go back and select customer's location."); 204 204 goto ERRJUMP; 205 } else { 206 if ($webvar{alloctype} =~ /^.i$/) { 207 $sth = $ip_dbh->prepare("update poolips set available='n', custid='$webvar{custid}', ". 208 "city='$webvar{city}', description='$webvar{desc}', notes='$webvar{notes}' ". 209 "where ip='$webvar{cidr}'"); 210 $sth->execute; 211 if ($sth->err) { 212 $page->param(errmsg => $sth->errstr); 213 syslog "err", "($authuser) Allocation of '$webvar{cidr}' to '$webvar{custid}' as ". 214 "'$webvar{alloctype}' failed: '".$sth->errstr."'"; 215 } else { 216 syslog "notice", "$authuser allocated '$webvar{cidr}' to '$webvar{custid}' as ". 217 "'$webvar{alloctype}'"; 218 mailNotify($ip_dbh, "a$webvar{alloctype}", "ADDED: $disp_alloctypes{$webvar{alloctype}} allocation", 219 "$disp_alloctypes{$webvar{alloctype}} $webvar{cidr} allocated to customer $webvar{custid}\n". 220 "Description: $webvar{desc}\n\nAllocated by: $authuser\n"); 221 } 222 } else { 223 my ($retcode,$msg) = allocateBlock($ip_dbh, $webvar{cidr}, $webvar{alloc_from}, 205 } 206 207 my ($retcode,$msg) = allocateBlock($ip_dbh, $webvar{cidr}, $webvar{alloc_from}, 224 208 $webvar{custid}, $webvar{alloctype}, $webvar{city}, $webvar{desc}, $webvar{notes}, 225 209 $webvar{circid}); 226 if ($retcode eq 'OK') { 227 syslog "notice", "$authuser allocated '$webvar{cidr}' to '$webvar{custid}' as ". 228 "'$webvar{alloctype}'"; 229 } else { 230 $page->param(errmsg => $msg); 231 syslog "err", "($authuser) Allocation of '$webvar{cidr}' to '$webvar{custid}' as ". 232 "'$webvar{alloctype}' failed: '$msg'"; 233 } 234 } # static IP vs netblock 235 236 } # done city check 210 if ($retcode eq 'OK') { 211 syslog "notice", "$authuser allocated '$webvar{cidr}' to '$webvar{custid}' as ". 212 "'$webvar{alloctype}'"; 213 if ($webvar{alloctype} =~ /^.i$/) { 214 mailNotify($ip_dbh, "a$webvar{alloctype}", "ADDED: $disp_alloctypes{$webvar{alloctype}} allocation", 215 "$disp_alloctypes{$webvar{alloctype}} $webvar{cidr} allocated to customer $webvar{custid}\n". 216 "Description: $webvar{desc}\n\nAllocated by: $authuser\n"); 217 } 218 } else { 219 $page->param(errmsg => $msg); 220 syslog "err", "($authuser) Allocation of '$webvar{cidr}' to '$webvar{custid}' as ". 221 "'$webvar{alloctype}' failed: '$msg'"; 222 } 237 223 238 224 } elsif ($webvar{action} eq 'alloctweak') {
Note:
See TracChangeset
for help on using the changeset viewer.