Problem description
After upgrading IPFire to the latest available versions (current Core Update), I found a problem with the WIO addon version 1.3.2-19.
Before the upgrade WIO was working correctly. After the upgrade, when I add an IP address that is not part of the local IPFire interfaces (for example an external public IP address), the WIO CGI page stops loading and terminates with an error.
Local IP addresses are handled correctly.
Apache log error
The first error was:
Undefined subroutine &General::GetDyndnsRedIP called at /srv/web/ipfire/cgi-bin/wio.cgi line 1166
The WIO code was calling a function that is no longer available in the General namespace.
The function still exists in:
/var/ipfire/http-client-functions.pl
as:
sub GetDyndnsRedIP
I temporarily modified WIO by removing the DynDNS synchronization check in that section.
After that, another error appeared:
Undefined subroutine &General::ipcidr2msk called at /srv/web/ipfire/cgi-bin/wio.cgi line 1586
The affected code was:
my $convertip = &General::ipcidr2msk($ovpnccdconfhash{$key}[1]);
This function is also no longer available in the General module.
After replacing this CIDR/netmask conversion locally, WIO started working correctly again, including with external public IP addresses.
Conclusion
There appears to be a compatibility issue between WIO 1.3.2-19 and the Perl libraries included in recent IPFire versions.
WIO seems to rely on older functions from the General module that have been moved, renamed, or removed.
A WIO update would probably be needed to use the current IPFire functions or to provide compatibility with newer IPFire releases.
Thank you.