@@ -101,7 +101,7 @@ func (c *Controller) getSubnetsNeedNAT(protocol string) ([]string, error) {
101
101
for _ , subnet := range subnets {
102
102
if c .isSubnetNeedNat (subnet , protocol ) {
103
103
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
104
- if err == nil {
104
+ if err == nil && cidrBlock != "" {
105
105
subnetsNeedNat = append (subnetsNeedNat , cidrBlock )
106
106
}
107
107
}
@@ -141,7 +141,7 @@ func (c *Controller) getSubnetsDistributedGateway(protocol string) ([]string, er
141
141
subnet .Spec .GatewayType == kubeovnv1 .GWDistributedType &&
142
142
(subnet .Spec .Protocol == kubeovnv1 .ProtocolDual || subnet .Spec .Protocol == protocol ) {
143
143
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
144
- if err == nil {
144
+ if err == nil && cidrBlock != "" {
145
145
result = append (result , cidrBlock )
146
146
}
147
147
}
@@ -172,7 +172,7 @@ func (c *Controller) getDefaultVpcSubnetsCIDR(protocol string) ([]string, map[st
172
172
for _ , subnet := range subnets {
173
173
if subnet .Spec .Vpc == c .config .ClusterRouter && (subnet .Spec .Vlan == "" || subnet .Spec .LogicalGateway ) && subnet .Spec .CIDRBlock != "" {
174
174
cidrBlock , err := getCidrByProtocol (subnet .Spec .CIDRBlock , protocol )
175
- if err == nil {
175
+ if err == nil && cidrBlock != "" {
176
176
ret = append (ret , cidrBlock )
177
177
subnetMap [subnet .Name ] = cidrBlock
178
178
}
@@ -204,22 +204,17 @@ func (c *Controller) getOtherNodes(protocol string) ([]string, error) {
204
204
}
205
205
206
206
func getCidrByProtocol (cidr , protocol string ) (string , error ) {
207
- var cidrStr string
208
207
if err := util .CheckCidrs (cidr ); err != nil {
209
208
return "" , err
210
209
}
211
210
212
- if util .CheckProtocol (cidr ) == kubeovnv1 .ProtocolDual {
213
- cidrBlocks := strings .Split (cidr , "," )
214
- if protocol == kubeovnv1 .ProtocolIPv4 {
215
- cidrStr = cidrBlocks [0 ]
216
- } else if protocol == kubeovnv1 .ProtocolIPv6 {
217
- cidrStr = cidrBlocks [1 ]
211
+ for _ , cidr := range strings .Split (cidr , "," ) {
212
+ if util .CheckProtocol (cidr ) == protocol {
213
+ return cidr , nil
218
214
}
219
- } else {
220
- cidrStr = cidr
221
215
}
222
- return cidrStr , nil
216
+
217
+ return "" , nil
223
218
}
224
219
225
220
func (c * Controller ) getEgressNatIPByNode (nodeName string ) (map [string ]string , error ) {
0 commit comments