]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - html/cgi-bin/connections.cgi
Merge remote-tracking branch 'origin/next'
[ipfire-2.x.git] / html / cgi-bin / connections.cgi
index 4eb9cd7bfe8a8cfadc953facfce9eee53e3acc5a..e9e9e335cfe4356b8509b5a79b1f482562e51e6c 100644 (file)
@@ -31,6 +31,7 @@ use Switch;
 require '/var/ipfire/general-functions.pl';
 require "${General::swroot}/lang.pl";
 require "${General::swroot}/header.pl";
+require "${General::swroot}/geoip-functions.pl";
 
 my $colour_multicast = "#A0A0A0";
 
@@ -261,15 +262,19 @@ close(IPSEC);
 
 foreach my $line (@ipsec) {
        my @vpn = split(',', $line);
-       my ($network, $mask) = split("/", $vpn[12]);
 
-       if (!&General::validip($mask)) {
-               $mask = ipv4_cidr2msk($mask);
-       }
+       my @subnets = split(/\|/, $vpn[12]);
+       for my $subnet (@subnets) {
+               my ($network, $mask) = split("/", $subnet);
+
+               if (!&General::validip($mask)) {
+                       $mask = ipv4_cidr2msk($mask);
+               }
 
-       push(@network, $network);
-       push(@masklen, $mask);
-       push(@colour, ${Header::colourvpn});
+               push(@network, $network);
+               push(@masklen, $mask);
+               push(@colour, ${Header::colourvpn});
+       }
 }
 
 if (-e "${General::swroot}/ovpn/n2nconf") {
@@ -375,6 +380,7 @@ print <<END;
                                <a href="?sort_field=3&amp;sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a>
                                <a href="?sort_field=3&amp;sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a>
                        </th>
+                       <th>&nbsp;</th>
                        <th style='text-align:center' colspan='2'>
                                <a href="?sort_field=2&amp;sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a>
                                <a href="?sort_field=2&amp;sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a>
@@ -382,6 +388,7 @@ print <<END;
                                <a href="?sort_field=4&amp;sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a>
                                <a href="?sort_field=4&amp;sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a>
                        </th>
+                       <th>&nbsp;</th>
                        <th style='text-align:center'>
                                <a href="?sort_field=8&amp;sort_order=d"><img style="width:10px" src="/images/up.gif" alt=""></a>
                                <a href="?sort_field=8&amp;sort_order=a"><img style="width:10px" src="/images/down.gif" alt=""></a>
@@ -405,9 +412,15 @@ print <<END;
                        <th style='text-align:center' colspan='2'>
                                $Lang::tr{'source ip and port'}
                        </th>
+                       <th style='text-align:center'>
+                               $Lang::tr{'country'}
+                       </th>
                        <th style='text-align:center' colspan='2'>
                                $Lang::tr{'dest ip and port'}
                        </th>
+                       <th style='text-align:center'>
+                               $Lang::tr{'country'}
+                       </th>
                        <th style='text-align:center'>
                                $Lang::tr{'download'} /
                                <br>$Lang::tr{'upload'}
@@ -536,6 +549,12 @@ foreach my $line (@conntrack) {
        my $bytes_in = format_bytes($bytes[0]);
        my $bytes_out = format_bytes($bytes[1]);
 
+       # enumerate GeoIP information
+       my $srcccode = &GeoIP::lookup($sip_ret);
+       my $src_flag_icon = &GeoIP::get_flag_icon($srcccode);
+       my $dstccode = &GeoIP::lookup($dip_ret);
+       my $dst_flag_icon = &GeoIP::get_flag_icon($dstccode);
+
        # Format TTL
        $ttl = format_time($ttl);
 
@@ -597,6 +616,9 @@ foreach my $line (@conntrack) {
                        </a>
                        $sport_extra
                </td>
+               <td style='text-align:center; background-color:$sip_colour;'>
+                       <a href='country.cgi#$srcccode'><img src='$src_flag_icon' border='0' align='absmiddle' alt='$srcccode' title='$srcccode' /></a>
+               </td>
                <td style='text-align:center; background-color:$dip_colour;'>
                        <a href='/cgi-bin/ipinfo.cgi?ip=$dip'>
                                <span style='color:#FFFFFF;'>$dip</span>
@@ -609,6 +631,9 @@ foreach my $line (@conntrack) {
                        </a>
                        $dport_extra
                </td>
+               <td style='text-align:center; background-color:$sip_colour;'>
+                       <a href='country.cgi#$dstccode'><img src='$dst_flag_icon' border='0' align='absmiddle' alt='$dstccode' title='$dstccode' /></a>
+               </td>
                <td style='text-align:center'>
                        $bytes_in / $bytes_out
                </td>