You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ya...@apache.org on 2013/02/22 03:02:59 UTC
git commit: refs/heads/master - CLOUDSTACK-1303: Fix NPE when extend
vlan with ipv4 only
Updated Branches:
refs/heads/master 6823adb3a -> a0762bc4a
CLOUDSTACK-1303: Fix NPE when extend vlan with ipv4 only
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/a0762bc4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/a0762bc4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/a0762bc4
Branch: refs/heads/master
Commit: a0762bc4a7771b47c004f523c8d3d636d5b3a11e
Parents: 6823adb
Author: Sheng Yang <sh...@citrix.com>
Authored: Thu Feb 21 16:38:39 2013 -0800
Committer: Sheng Yang <sh...@citrix.com>
Committed: Thu Feb 21 18:02:50 2013 -0800
----------------------------------------------------------------------
server/src/com/cloud/network/NetworkModelImpl.java | 3 +++
utils/src/com/cloud/utils/net/NetUtils.java | 6 ++++++
utils/test/com/cloud/utils/net/NetUtilsTest.java | 5 +++++
3 files changed, 14 insertions(+), 0 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/a0762bc4/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index ebe5aa4..7b3717a 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -568,6 +568,9 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
@Override
public boolean isIP6AddressAvailableInVlan(long vlanId) {
VlanVO vlan = _vlanDao.findById(vlanId);
+ if (vlan.getIp6Range() == null) {
+ return false;
+ }
long existedCount = _ipv6Dao.countExistedIpsInVlan(vlanId);
BigInteger existedInt = BigInteger.valueOf(existedCount);
BigInteger rangeInt = NetUtils.countIp6InRange(vlan.getIp6Range());
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/a0762bc4/utils/src/com/cloud/utils/net/NetUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/NetUtils.java b/utils/src/com/cloud/utils/net/NetUtils.java
index f6b62de..dd40a33 100755
--- a/utils/src/com/cloud/utils/net/NetUtils.java
+++ b/utils/src/com/cloud/utils/net/NetUtils.java
@@ -1192,6 +1192,9 @@ public class NetUtils {
// Can cover 127 bits
public static BigInteger countIp6InRange(String ip6Range) {
+ if (ip6Range == null) {
+ return null;
+ }
String[] ips = ip6Range.split("-");
String startIp = ips[0];
String endIp = ips[0];
@@ -1214,6 +1217,9 @@ public class NetUtils {
}
public static boolean isIp6InRange(String ip6, String ip6Range) {
+ if (ip6Range == null) {
+ return false;
+ }
String[] ips = ip6Range.split("-");
String startIp = ips[0];
String endIp = null;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/a0762bc4/utils/test/com/cloud/utils/net/NetUtilsTest.java
----------------------------------------------------------------------
diff --git a/utils/test/com/cloud/utils/net/NetUtilsTest.java b/utils/test/com/cloud/utils/net/NetUtilsTest.java
index 09c6f60..28bd71f 100644
--- a/utils/test/com/cloud/utils/net/NetUtilsTest.java
+++ b/utils/test/com/cloud/utils/net/NetUtilsTest.java
@@ -122,5 +122,10 @@ public class NetUtilsTest extends TestCase {
assertTrue(NetUtils.isIp6InNetwork("1234:5678::1", "1234:5678::/64"));
assertTrue(NetUtils.isIp6InNetwork("1234:5678::ffff:ffff:ffff:ffff", "1234:5678::/64"));
assertTrue(NetUtils.isIp6InNetwork("1234:5678::", "1234:5678::/64"));
+ //Test isIp6InRange
+ assertTrue(NetUtils.isIp6InRange("1234:5678:abcd::1", "1234:5678:abcd::1-1234:5678:abcd::1"));
+ assertFalse(NetUtils.isIp6InRange("1234:5678:abcd::1", "1234:5678:abcd::2-1234:5678:abcd::1"));
+ assertFalse(NetUtils.isIp6InRange("1234:5678:abcd::1", null));
+ assertTrue(NetUtils.isIp6InRange("1234:5678:abcd::1", "1234:5678::1-1234:5679::1"));
}
}