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 2012/08/02 00:31:26 UTC

git commit: S2S VPN: CS-15810: Add check for customer gateway subnets / VPC CIDR overlap

Updated Branches:
  refs/heads/vpc 6ad7f2f80 -> 96ac18d8e


S2S VPN: CS-15810: Add check for customer gateway subnets / VPC CIDR overlap


Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/96ac18d8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/96ac18d8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/96ac18d8

Branch: refs/heads/vpc
Commit: 96ac18d8ed6f27a1ee92200536387ef3f09e4638
Parents: 6ad7f2f
Author: Sheng Yang <sh...@citrix.com>
Authored: Wed Aug 1 15:18:19 2012 -0700
Committer: Sheng Yang <sh...@citrix.com>
Committed: Wed Aug 1 15:31:17 2012 -0700

----------------------------------------------------------------------
 .../cloud/network/vpn/Site2SiteVpnManagerImpl.java |   12 ++++++++++++
 1 files changed, 12 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/96ac18d8/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
index 3b6e533..83fc102 100644
--- a/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/Site2SiteVpnManagerImpl.java
@@ -209,6 +209,18 @@ public class Site2SiteVpnManagerImpl implements Site2SiteVpnManager, Manager {
             throw new InvalidParameterValueException("The vpn connection with specified customer gateway id " + customerGatewayId +
                     " already exists!");
         }
+
+        String[] cidrList = customerGateway.getGuestCidrList().split(",");
+        String vpcCidr = _vpcDao.findById(vpnGateway.getVpcId()).getCidr();
+        for (String cidr : cidrList) {
+            if (NetUtils.isNetworksOverlap(vpcCidr, cidr)) {
+                List<IdentityProxy> idList = new ArrayList<IdentityProxy>();
+                idList.add(new IdentityProxy(customerGateway, customerGatewayId, "customerGatewayId"));
+                throw new InvalidParameterValueException("The subnet of customer gateway " + cidr + " is overlapped with VPC cidr " +
+                        vpcCidr + "!", idList);
+            }
+        }
+
         Site2SiteVpnConnectionVO conn = new Site2SiteVpnConnectionVO(owner.getAccountId(), owner.getDomainId(), vpnGatewayId, customerGatewayId);
         conn.setState(State.Pending);
         _vpnConnectionDao.persist(conn);