Author: jfthomps
Date: Thu Oct 27 18:56:55 2011
New Revision: 1189936

URL: http://svn.apache.org/viewvc?rev=1189936&view=rev
Log:
VCL-533
error when trying to download dhcp data when private IP address was not entered

modified submitAddBulkComputers - added check that $dopr is also true to print 
the generate dhcp form
modified processBulkComputerInput - found this in testing the above - no checks 
were done for duplicate mac addresses - added checks for that

Modified:
    incubator/vcl/trunk/web/.ht-inc/computers.php

Modified: incubator/vcl/trunk/web/.ht-inc/computers.php
URL: 
http://svn.apache.org/viewvc/incubator/vcl/trunk/web/.ht-inc/computers.php?rev=1189936&r1=1189935&r2=1189936&view=diff
==============================================================================
--- incubator/vcl/trunk/web/.ht-inc/computers.php (original)
+++ incubator/vcl/trunk/web/.ht-inc/computers.php Thu Oct 27 18:56:55 2011
@@ -1622,7 +1622,7 @@ function submitAddBulkComputers() {
        else
                print $count - $addedrows . " computers failed to get 
added<br><br>\n";
        print "</div>\n";
-       if($domacs)
+       if($domacs && $dopr)
                generateDhcpForm($dhcpdata);
        clearPrivCache();
 }
@@ -3328,6 +3328,9 @@ function processBulkComputerInput($check
                        $topplus = implode(':', str_split(dechex($topdec + 1), 
2));
                        $start = $botdec;
                        $return['macs'] = array();
+                       $eth0macs = array();
+                       $eth1macs = array();
+                       $toggle = 0;
                        $end = $start + (($endaddrArr[3] - $startaddrArr[3] + 
1) * 2);
                        for($i = $start; $i < $end; $i++) {
                                if($i > 16777215) {
@@ -3341,8 +3344,27 @@ function processBulkComputerInput($check
                                        $tmp2 = str_split($tmp, 2);
                                        $return['macs'][] = $topmac . ':' . 
implode(':', $tmp2);
                                }
+                               if($toggle % 2)
+                                       $eth1macs[] = $topmac . ':' . 
implode(':', $tmp2);
+                               else
+                                       $eth0macs[] = $topmac . ':' . 
implode(':', $tmp2);
+                               $toggle++;
+                       }
+                       $ineth0s = implode("','", $eth0macs);
+                       $ineth1s = implode("','", $eth1macs);
+                       $query = "SELECT id "
+                              . "FROM computer "
+                              . "WHERE eth0macaddress IN ('$ineth0s') OR "
+                              .       "eth1macaddress IN ('$ineth1s')";
+                       $qh = doQuery($query);
+                       if(mysql_num_rows($qh)) {
+                               $submitErr |= MACADDRERR;
+                               $submitErrMsg[MACADDRERR] = "The specified 
starting MAC address "
+                                                         . "combined with the 
number of computers "
+                                                         . "entered will 
result in a MAC address "
+                                                         . "already assigned 
to another computer.";
                        }
-                       if($i > 16777215 && $topdec == 16777215) {
+                       elseif($i > 16777215 && $topdec == 16777215) {
                                $submitErr |= MACADDRERR;
                                $submitErrMsg[MACADDRERR] = "Starting MAC 
address too large for given "
                                                          . "given number of 
machines";


Reply via email to