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 <[email protected]>
Authored: Wed Aug 1 15:18:19 2012 -0700
Committer: Sheng Yang <[email protected]>
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);

Reply via email to