diff options
| author | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2026-03-11 12:23:05 +0100 |
|---|---|---|
| committer | sarthurdev <965089+sarthurdev@users.noreply.github.com> | 2026-03-18 11:45:52 +0100 |
| commit | fca6d1e606ca2f708d6de78a48c6a76eea591f0c (patch) | |
| tree | 2e1a0505777ebac76c1ea0f8c2398c87bb647fbf | |
| parent | 1abd474dd52da7dee8e3c8c8b17f18c134ced964 (diff) | |
| download | vyos-build-fca6d1e606ca2f708d6de78a48c6a76eea591f0c.tar.gz vyos-build-fca6d1e606ca2f708d6de78a48c6a76eea591f0c.zip | |
kea: T7853: Offer subnet for any interface address
Move repo prep to pre-build hook so patches can be applied and build using build.py
| -rw-r--r-- | scripts/package-build/isc-kea/.gitignore | 4 | ||||
| -rw-r--r-- | scripts/package-build/isc-kea/package.toml | 2 | ||||
| -rw-r--r-- | scripts/package-build/isc-kea/patches/isc-kea/0001-3162-Check-all-interface-addresses-for-matching-subn.patch | 59 | ||||
| -rwxr-xr-x | scripts/package-build/isc-kea/prebuild.sh (renamed from scripts/package-build/isc-kea/build.sh) | 3 |
4 files changed, 62 insertions, 6 deletions
diff --git a/scripts/package-build/isc-kea/.gitignore b/scripts/package-build/isc-kea/.gitignore index 14a6344c..39caf968 100644 --- a/scripts/package-build/isc-kea/.gitignore +++ b/scripts/package-build/isc-kea/.gitignore @@ -1,2 +1,2 @@ -isc-kea/ -kea-packaging/ +/isc-kea/ +/kea-packaging/ diff --git a/scripts/package-build/isc-kea/package.toml b/scripts/package-build/isc-kea/package.toml index 19924493..57bf393a 100644 --- a/scripts/package-build/isc-kea/package.toml +++ b/scripts/package-build/isc-kea/package.toml @@ -2,4 +2,4 @@ name = "isc-kea" commit_id = "Kea-3.0.2" scm_url = "https://gitlab.isc.org/isc-projects/kea.git" -build_cmd = "cd ..; ./build.sh" +pre_build_hook = "cd ..; ./prebuild.sh" diff --git a/scripts/package-build/isc-kea/patches/isc-kea/0001-3162-Check-all-interface-addresses-for-matching-subn.patch b/scripts/package-build/isc-kea/patches/isc-kea/0001-3162-Check-all-interface-addresses-for-matching-subn.patch new file mode 100644 index 00000000..57d700c3 --- /dev/null +++ b/scripts/package-build/isc-kea/patches/isc-kea/0001-3162-Check-all-interface-addresses-for-matching-subn.patch @@ -0,0 +1,59 @@ +From 7d4662a0e26fae27583883a8c8138b62792fc3cf Mon Sep 17 00:00:00 2001 +From: sarthurdev <965089+sarthurdev@users.noreply.github.com> +Date: Sat, 20 Sep 2025 23:00:20 +0200 +Subject: [PATCH] [#3162] Check all interface addresses for matching subnet + +--- + src/lib/dhcpsrv/cfg_subnets4.cc | 31 +++++++++++++++++++------------ + 1 file changed, 19 insertions(+), 12 deletions(-) + +diff --git a/src/lib/dhcpsrv/cfg_subnets4.cc b/src/lib/dhcpsrv/cfg_subnets4.cc +index 13286bb6d4..f25349f63a 100644 +--- a/src/lib/dhcpsrv/cfg_subnets4.cc ++++ b/src/lib/dhcpsrv/cfg_subnets4.cc +@@ -393,23 +393,30 @@ CfgSubnets4::selectSubnet(const SubnetSelector& selector) const { + if (subnet) { + return (subnet); + } else { +- // Let's try to get an address from the local interface and +- // try to match it to defined subnet. +- iface->getAddress4(address); ++ // Let's try to get addresses from the local interface and ++ // try to match one to a defined subnet. ++ for (auto const& addr : iface->getAddresses()) { ++ ++ // We only care about IPv4 here ++ if (!addr.get().isV4()) { ++ continue; ++ } ++ ++ address = addr.get(); ++ subnet = selectSubnet(address, selector.client_classes_); ++ ++ if (subnet) { ++ return (subnet); ++ } ++ } + } + } + + // Unable to find a suitable address to use for subnet selection. +- if (address.isV4Zero()) { +- LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE, +- DHCPSRV_SUBNET4_SELECT_NO_USABLE_ADDRESS); +- +- return (ConstSubnet4Ptr()); +- } ++ LOG_DEBUG(dhcpsrv_logger, DHCPSRV_DBG_TRACE, ++ DHCPSRV_SUBNET4_SELECT_NO_USABLE_ADDRESS); + +- // We have identified an address in the client's packet that can be +- // used for subnet selection. Match this packet with the subnets. +- return (selectSubnet(address, selector.client_classes_)); ++ return (ConstSubnet4Ptr()); + } + + ConstSubnet4Ptr +-- +2.50.1 (Apple Git-155) + diff --git a/scripts/package-build/isc-kea/build.sh b/scripts/package-build/isc-kea/prebuild.sh index b30804f5..7bd6d5b6 100755 --- a/scripts/package-build/isc-kea/build.sh +++ b/scripts/package-build/isc-kea/prebuild.sh @@ -25,6 +25,3 @@ sed -i '/usr\/share\/doc\/kea/d' debian/*.install echo "usr/share/doc/kea/*" >> debian/not-installed echo "usr/share/kea/meson-info/*" >> debian/not-installed rm -rf debian/isc-kea-doc.install debian/isc-kea-subscriber* debian/isc-kea-premium* - -sudo mk-build-deps --install --tool 'apt-get --yes --no-install-recommends' -dpkg-buildpackage -uc -us -tc -b |
