From 0940e841b0442eb80f71002ba90f91ca34c0332f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?nick8584946899//=E5=A1=AB=E5=86=99=E4=BA=91=E6=95=88?= =?UTF-8?q?=E5=A7=93=E5=90=8D=7E?= Date: Fri, 11 Sep 2026 13:22:09 +0800 Subject: [PATCH] network: fix free IP limit across ranges --- .../src/main/java/org/zstack/network/l3/L3BasicNetwork.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/network/src/main/java/org/zstack/network/l3/L3BasicNetwork.java b/network/src/main/java/org/zstack/network/l3/L3BasicNetwork.java index 7efcc6ea..6618f25f 100644 --- a/network/src/main/java/org/zstack/network/l3/L3BasicNetwork.java +++ b/network/src/main/java/org/zstack/network/l3/L3BasicNetwork.java @@ -861,6 +861,10 @@ private void handle(APIGetFreeIpMsg msg) { int limit = msg.getLimit(); String start = msg.getStart(); for ( IpRangeVO ipRangeVO : ipRangeVOs) { + if (limit <= 0) { + break; + } + if( msg.getStart() == null){ if ( ipRangeVO.getIpVersion() == IPv6Constants.IPv6) { start = "::"; @@ -873,7 +877,7 @@ private void handle(APIGetFreeIpMsg msg) { if (freeIpInventorys.size() >= msg.getLimit()) { break; } - limit -= freeIpInventorys.size(); + limit -= tempFreeIpInventorys.size(); } reply.setInventories(freeIpInventorys);