@@ -106,7 +106,7 @@ func (c *Controller) getSubnetsNeedNAT(protocol string) ([]string, error) {
106
106
for _ , subnet := range subnets {
107
107
if c .isSubnetNeedNat (subnet , protocol ) {
108
108
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
109
- if err == nil {
109
+ if err == nil && cidrBlock != "" {
110
110
subnetsNeedNat = append (subnetsNeedNat , cidrBlock )
111
111
}
112
112
}
@@ -146,7 +146,7 @@ func (c *Controller) getSubnetsDistributedGateway(protocol string) ([]string, er
146
146
subnet .Spec .GatewayType == kubeovnv1 .GWDistributedType &&
147
147
(subnet .Spec .Protocol == kubeovnv1 .ProtocolDual || subnet .Spec .Protocol == protocol ) {
148
148
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
149
- if err == nil {
149
+ if err == nil && cidrBlock != "" {
150
150
result = append (result , cidrBlock )
151
151
}
152
152
}
@@ -177,7 +177,7 @@ func (c *Controller) getDefaultVpcSubnetsCIDR(protocol string) ([]string, map[st
177
177
for _ , subnet := range subnets {
178
178
if subnet .Spec .Vpc == c .config .ClusterRouter && (subnet .Spec .Vlan == "" || subnet .Spec .LogicalGateway ) && subnet .Spec .CIDRBlock != "" {
179
179
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
180
- if err == nil {
180
+ if err == nil && cidrBlock != "" {
181
181
ret = append (ret , cidrBlock )
182
182
subnetMap [subnet .Name ] = cidrBlock
183
183
}
@@ -209,22 +209,17 @@ func (c *Controller) getOtherNodes(protocol string) ([]string, error) {
209
209
}
210
210
211
211
func getCidrByProtocol (cidr , protocol string ) (string , error ) {
212
- var cidrStr string
213
212
if err := util .CheckCidrs (cidr ); err != nil {
214
213
return "" , err
215
214
}
216
215
217
- if util .CheckProtocol (cidr ) == kubeovnv1 .ProtocolDual {
218
- cidrBlocks := strings .Split (cidr , "," )
219
- if protocol == kubeovnv1 .ProtocolIPv4 {
220
- cidrStr = cidrBlocks [0 ]
221
- } else if protocol == kubeovnv1 .ProtocolIPv6 {
222
- cidrStr = cidrBlocks [1 ]
216
+ for _ , cidr := range strings .Split (cidr , "," ) {
217
+ if util .CheckProtocol (cidr ) == protocol {
218
+ return cidr , nil
223
219
}
224
- } else {
225
- cidrStr = cidr
226
220
}
227
- return cidrStr , nil
221
+
222
+ return "" , nil
228
223
}
229
224
230
225
func (c * Controller ) getEgressNatIPByNode (nodeName string ) (map [string ]string , error ) {
0 commit comments