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);