A "chomp;" at the begin of the loop should be enough.  All subnet definitions end with a newline.
 
Regards,
Bernhard

> Gesendet: Montag, 12. Februar 2018 um 23:19 Uhr
> Von: "Bernhard Held" <berny156@gmx.de>
> An: development@lists.ipfire.org
> Betreff: [PATCH v2 4/4] proxy.cgi: fix subnet comparison for proxy.pac generation
>
> The logic of subnet comparison is broken. E.g. if the blue netmask is
> 255.255.255.0, it's impossible to add a VPN subnet with the same netmask.
> The fix simplifies the logic by using Network::network_equal.
> ---
> html/cgi-bin/proxy.cgi | 7 ++++---
> 1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/html/cgi-bin/proxy.cgi b/html/cgi-bin/proxy.cgi
> index ea3b41126..df436595b 100644
> --- a/html/cgi-bin/proxy.cgi
> +++ b/html/cgi-bin/proxy.cgi
> @@ -3065,9 +3065,10 @@ END
> {
> @temp = split(/\//);
> chomp $temp[1];
> - if (
> - ($temp[0] ne $netsettings{'GREEN_NETADDRESS'}) && ($temp[1] ne $netsettings{'GREEN_NETMASK'}) &&
> - ($temp[0] ne $netsettings{'BLUE_NETADDRESS'}) && ($temp[1] ne $netsettings{'BLUE_NETMASK'})
> + unless (
> + # GREEN or BLUE networks are already added to "DIRECT". Check if given network is different from these.
> + &Network::network_equal("$temp[0]/$temp[1]", "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}") ||
> + &Network::network_equal("$temp[0]/$temp[1]", "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}")
> )
> {
> print FILE " ||\n (isInNet(myIpAddress(), \"$temp[0]\", \"$temp[1]\"))";
> --
> 2.16.1
>
>