Hi Marek, Yes, there is a change of syntax in 2.14. The notifications show you that the return type of the function was automatically inferred. https://gitlab.nic.cz/labs/bird/-/blob/v2.14/NEWS?ref_type=tags#L19
User-defined filter functions that return values now should have return type statements. We still accept functions without such statement, if they could be properly typed.
Regards, Alexander On Thu, Feb 8, 2024 at 7:53 PM Marek Zarychta via Bird-users <bird-users@network.cz> wrote:
Dear List,
today, after 299 days of machine uptime I broke 7-months lasting BGP sessions and upgraded both: FreeBSD and BIRD on our router from 13.2-STABLE to 14.0-STABLE. Now bird2-netlink-2.14 is installed and it seems to be working fine, though surprising notifications showed up in the log file:
bird: /usr/local/etc/bird.conf:114:57: Inferring function check_import_v4 return type from its return value: bool bird: /usr/local/etc/bird.conf:162:58: Inferring function check_import_v6 return type from its return value: bool
These lines are respectively: if (net.len < 8) || (net.len > 24) then return false; and if (net.len < 16) || (net.len > 48) then return false;
I believe the warnings are harmless since "configure check" passes, but please let me know if anything is wrong with this syntax.
Cheers
-- Marek Zarychta