From new-commit at lists.openvcp.org Wed Jan 19 09:27:05 2011 From: new-commit at lists.openvcp.org (new-commit at lists.openvcp.org) Date: Wed, 19 Jan 2011 09:27:05 +0000 Subject: [Commits] r732 - in trunk/webinterface: core mods/super/nodes Message-ID: <20110119092705.507634658456@OpenVCP.org> Author: ftx Date: 2011-01-19 09:27:04 +0000 (Wed, 19 Jan 2011) New Revision: 732 Modified: trunk/webinterface/core/mysql.sql trunk/webinterface/mods/super/nodes/node.php Log: ipv6 related patch, contributed by Dan Gr?\195?\188nzig Modified: trunk/webinterface/core/mysql.sql =================================================================== --- trunk/webinterface/core/mysql.sql 2010-09-29 13:33:20 UTC (rev 731) +++ trunk/webinterface/core/mysql.sql 2011-01-19 09:27:04 UTC (rev 732) @@ -159,7 +159,7 @@ `vserverid` int(4) NOT NULL default '0', `nodeid` int(4) NOT NULL default '0', `used` enum('y','n') NOT NULL default 'y', - `netmask` varchar(15) NOT NULL default '', + `netmask` varchar(40) NOT NULL default '', `broadcast` varchar(15) NOT NULL default '', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; Modified: trunk/webinterface/mods/super/nodes/node.php =================================================================== --- trunk/webinterface/mods/super/nodes/node.php 2010-09-29 13:33:20 UTC (rev 731) +++ trunk/webinterface/mods/super/nodes/node.php 2011-01-19 09:27:04 UTC (rev 732) @@ -315,13 +315,14 @@ if(Net_IPv6::isInNetmask($_POST['startip'].$_POST['netmask'], $netmask) && Net_IPv6::checkIPv6($_POST['startip']) && Net_IPv6::checkIPv6($_POST['endip'])) { $ok = true; - $nextIp = $_POST['startip']; - $ip = explode(":", $_POST['startip']); + $nextIp = Net_IPv6::compress($_POST['startip']); + $endIpCompressed = Net_IPv6::compress($_POST['endip']); while(Net_IPv6::isInNetmask($nextIp.$_POST['netmask'], $netmask)) { + $ip = explode(":", Net_IPv6::Uncompress($nextIp)); if(!$DB->select($DB->table_network, NULL, NULL, array('ip' => $nextIp))) - $DB->insert($DB->table_network, array('id' => '', 'ip' => $nextIp, 'vserver' => '', 'node' => $node->getId(), 'used' => 'n', 'netmask' => $netmask, 'broadcast' => '')); + $DB->insert($DB->table_network, array('id' => '', 'ip' => $nextIp, 'vserverid' => '', 'nodeid' => $node->getId(), 'used' => 'n', 'netmask' => $netmask, 'broadcast' => '', 'reservation'=>'')); for($i = 0; $i < count($ip); $i++) { $ip[$i] = hexdec($ip[$i]); @@ -342,15 +343,18 @@ $testIp = 0; for($i = 0; $i < count($ip); $i++) { - if(dechex($ip[$i]) > 0) + if($ip[$i] > 0) { $nextIp .= dechex($ip[$i]); } + else { + $nextIp .= '0'; + } $nextIp .= ":"; } $nextIp = trim($nextIp, ":"); $nextIp = Net_IPv6::compress($nextIp); - if($nextIp == $_POST['endip']) + if($nextIp == $endIpCompressed) { break; }