public inbox for ipfire-scm@lists.ipfire.org
 help / color / mirror / Atom feed
* [git.ipfire.org] IPFire 2.x development tree branch, fifteen, updated. a8b113e73d9e8b71eb57621109d7c4a6b46c34e2
@ 2013-12-20 11:18 git
  0 siblings, 0 replies; only message in thread
From: git @ 2013-12-20 11:18 UTC (permalink / raw)
  To: ipfire-scm

[-- Attachment #1: Type: text/plain, Size: 25790 bytes --]

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "IPFire 2.x development tree".

The branch, fifteen has been updated
       via  a8b113e73d9e8b71eb57621109d7c4a6b46c34e2 (commit)
       via  5f037986b7b1b1f3b012ea0c50e44c77e92cfef2 (commit)
       via  484269ceacaad3deb817e1e9dc0af444633d1400 (commit)
       via  ce2dbe92ce5f0655670d38502a65c0c53542e361 (commit)
      from  dd6c9bb9c3c9031358aa61b629bf38b568d96676 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit a8b113e73d9e8b71eb57621109d7c4a6b46c34e2
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Fri Dec 20 11:56:18 2013 +0100

    Firewall: Now servicegroups and networkgroups can be renamed

commit 5f037986b7b1b1f3b012ea0c50e44c77e92cfef2
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Fri Dec 20 09:40:24 2013 +0100

    Firewall: added JS to automatically select radiobuttons in fwhosts

commit 484269ceacaad3deb817e1e9dc0af444633d1400
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Thu Dec 19 17:32:37 2013 +0100

    FIrewall: Rewrote complete counters for firewall-groups (hosts,networks, network-groups)

commit ce2dbe92ce5f0655670d38502a65c0c53542e361
Author: Alexander Marx <amarx(a)ipfire.org>
Date:   Thu Dec 19 17:26:12 2013 +0100

    Firewall: Bugfix - When editing a DNAT rule and setting prot to "all" the port from previus rule was not resettet

-----------------------------------------------------------------------

Summary of changes:
 html/cgi-bin/firewall.cgi |   4 +
 html/cgi-bin/fwhosts.cgi  | 263 +++++++++++++++++++++++++++++++++++-----------
 2 files changed, 207 insertions(+), 60 deletions(-)

Difference in files:
diff --git a/html/cgi-bin/firewall.cgi b/html/cgi-bin/firewall.cgi
index 28a7f0b..741fada 100755
--- a/html/cgi-bin/firewall.cgi
+++ b/html/cgi-bin/firewall.cgi
@@ -783,6 +783,10 @@ sub checkrule
 					}
 					$fwdfwsettings{'dnatport'}=join("|",@values);
 		}
+		#check if a rule with prot tcp or udp and ports is edited and now prot is "all", then delete all ports
+		if($fwdfwsettings{'PROT'} eq ''){
+			$fwdfwsettings{'dnatport'}='';
+		}
 	}
 	#check valid remark
 	if ($fwdfwsettings{'ruleremark'} ne '' && !&validremark($fwdfwsettings{'ruleremark'})){
diff --git a/html/cgi-bin/fwhosts.cgi b/html/cgi-bin/fwhosts.cgi
index 7fb05de..3e59a9d 100755
--- a/html/cgi-bin/fwhosts.cgi
+++ b/html/cgi-bin/fwhosts.cgi
@@ -111,6 +111,12 @@ print<<END;
 		var protocol = \$("#protocol").val();
 		\$("#protocol").change(update_protocol);
 		update_protocol();
+		// Automatically select radio buttons when corresponding
+		// dropdown menu changes.
+		\$("select").change(function() {
+			var id = \$(this).attr("name");
+			\$('#' + id).prop("checked", true);
+		});
 	});
 </script>
 END
@@ -268,7 +274,6 @@ if ($fwhostsettings{'ACTION'} eq 'updateservice')
 # save
 if ($fwhostsettings{'ACTION'} eq 'savenet' )
 {
-	my $count=0;
 	my $needrules=0;
 	if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};}
 	#check if all fields are set
@@ -342,7 +347,6 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 			$customnetwork{$key}[1] = $fwhostsettings{'orgip'} ;
 			$customnetwork{$key}[2] = $fwhostsettings{'orgsub'};
 			$customnetwork{$key}[3] = $fwhostsettings{'orgnetremark'};
-			$customnetwork{$key}[4] = $fwhostsettings{'count'};
 			&General::writehasharray("$confignet", \%customnetwork);
 			undef %customnetwork;
 		} 			
@@ -353,7 +357,6 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 				if ($fwhostsettings{'update'} == '0'){
 					foreach my $key (keys %customnetwork) {
 						if($customnetwork{$key}[0] eq $fwhostsettings{'orgname'}){
-							$count=$customnetwork{$key}[4];
 							delete $customnetwork{$key};
 							last;
 						}
@@ -363,9 +366,8 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 			#get count if actualize is 'on'
 			if($fwhostsettings{'actualize'} eq 'on'){
 				$fwhostsettings{'actualize'} = '';
-				$count=$fwhostsettings{'count'};
 				#check if we need to reload rules
-				if($fwhostsettings{'orgip'}  ne $fwhostsettings{'IP'}  && $count gt '0'){
+				if($fwhostsettings{'orgip'}  ne $fwhostsettings{'IP'}){
 					$needrules='on';
 				}
 				if ($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){
@@ -403,7 +405,7 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 				}
 			}					
 			my $key = &General::findhasharraykey (\%customnetwork);
-			foreach my $i (0 .. 4) { $customnetwork{$key}[$i] = "";}
+			foreach my $i (0 .. 3) { $customnetwork{$key}[$i] = "";}
 			$fwhostsettings{'SUBNET'}	= &General::iporsubtocidr($fwhostsettings{'SUBNET'});
 			$customnetwork{$key}[0] 	= $fwhostsettings{'HOSTNAME'};
 			#convert ip when leading '0' in byte
@@ -411,9 +413,7 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 			$fwhostsettings{'IP'}		=&General::dec2ip($fwhostsettings{'IP'});
 			$customnetwork{$key}[1] 	= &General::getnetworkip($fwhostsettings{'IP'},$fwhostsettings{'SUBNET'}) ;
 			$customnetwork{$key}[2] 	= &General::iporsubtodec($fwhostsettings{'SUBNET'}) ;
-			if($fwhostsettings{'newnet'} eq 'on'){$count=0;}
 			$customnetwork{$key}[3] 	= $fwhostsettings{'NETREMARK'};
-			$customnetwork{$key}[4] 	= $count;
 			&General::writehasharray("$confignet", \%customnetwork);
 			$fwhostsettings{'IP'}=$fwhostsettings{'IP'}."/".&General::iporsubtodec($fwhostsettings{'SUBNET'});
 			undef %customnetwork;
@@ -435,7 +435,6 @@ if ($fwhostsettings{'ACTION'} eq 'savenet' )
 }
 if ($fwhostsettings{'ACTION'} eq 'savehost')
 {
-	my $count=0;
 	my $needrules=0;
 	if ($fwhostsettings{'orgname'} eq ''){$fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};}
 	$fwhostsettings{'SUBNET'}='32';
@@ -483,7 +482,7 @@ if ($fwhostsettings{'ACTION'} eq 'savehost')
 		if($fwhostsettings{'actualize'} eq 'on' && $fwhostsettings{'newhost'} ne 'on' && $errormessage){
 			$fwhostsettings{'actualize'} = '';
 			my $key = &General::findhasharraykey (\%customhost);
-			foreach my $i (0 .. 4) { $customhost{$key}[$i] = "";}
+			foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";}
 			$customhost{$key}[0] = $fwhostsettings{'orgname'} ;
 			$customhost{$key}[1] = $fwhostsettings{'type'} ;
 			if($customhost{$key}[1] eq 'ip'){
@@ -492,15 +491,13 @@ if ($fwhostsettings{'ACTION'} eq 'savehost')
 				$customhost{$key}[2] = $fwhostsettings{'orgip'};
 			}
 			$customhost{$key}[3] = $fwhostsettings{'orgremark'};
-			$customhost{$key}[4] = $fwhostsettings{'count'};
 			&General::writehasharray("$confighost", \%customhost);
 			undef %customhost;
 		} 
 		if (!$errormessage){
 			#get count if host was edited
 			if($fwhostsettings{'actualize'} eq 'on'){
-				$count=$fwhostsettings{'count'};
-				if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'} && $count gt '0' ){
+				if($fwhostsettings{'orgip'} ne $fwhostsettings{'IP'}){
 					$needrules='on';
 				}
 				if($fwhostsettings{'orgname'} ne $fwhostsettings{'HOSTNAME'}){
@@ -537,7 +534,7 @@ if ($fwhostsettings{'ACTION'} eq 'savehost')
 				}
 			}
 			my $key = &General::findhasharraykey (\%customhost);
-			foreach my $i (0 .. 4) { $customhost{$key}[$i] = "";}
+			foreach my $i (0 .. 3) { $customhost{$key}[$i] = "";}
 			$customhost{$key}[0] = $fwhostsettings{'HOSTNAME'} ;
 			$customhost{$key}[1] = $fwhostsettings{'type'} ;
 			if ($fwhostsettings{'type'} eq 'ip'){
@@ -548,9 +545,7 @@ if ($fwhostsettings{'ACTION'} eq 'savehost')
 			}else{
 				$customhost{$key}[2] = $fwhostsettings{'IP'};
 			}
-			if($fwhostsettings{'newhost'} eq 'on'){$count=0;}
 			$customhost{$key}[3] = $fwhostsettings{'HOSTREMARK'};
-			$customhost{$key}[4] =$count;
 			&General::writehasharray("$confighost", \%customhost);
 			undef %customhost;
 			$fwhostsettings{'HOSTNAME'}='';
@@ -571,7 +566,7 @@ if ($fwhostsettings{'ACTION'} eq 'savehost')
 }
 if ($fwhostsettings{'ACTION'} eq 'savegrp')
 {
-	my $grp=$fwhostsettings{'grp_name'};;
+	my $grp=$fwhostsettings{'grp_name'};
 	my $rem=$fwhostsettings{'remark'};
 	my $count;
 	my $type;
@@ -581,6 +576,9 @@ if ($fwhostsettings{'ACTION'} eq 'savegrp')
 	&General::readhasharray("$configgrp", \%customgrp);
 	&General::readhasharray("$confignet", \%customnetwork);
 	&General::readhasharray("$confighost", \%customhost);
+	&General::readhasharray("$fwconfigfwd", \%fwfwd);
+	&General::readhasharray("$fwconfiginp", \%fwinp);
+	&General::readhasharray("$fwconfigout", \%fwout);
 	#check name
 	if (!&validhostname($grp)){$errormessage.=$Lang::tr{'fwhost err name'};}
 	#check existing name
@@ -685,17 +683,6 @@ if ($fwhostsettings{'ACTION'} eq 'savegrp')
 		}
 		&General::writehasharray("$configgrp", \%customgrp);
 		&General::readhasharray("$configgrp", \%customgrp);
-		#get count used
-		foreach my $key (keys %customgrp)
-		{
-			if($customgrp{$key}[0] eq $grp)
-			{
-				$count=$customgrp{$key}[4];
-				last;
-			}
-		}
-		if ($count eq '' ){$count='0';}
-		
 		#create array with new lines
 		foreach my $line (@target){
 			push (@newgrp,"$grp,$rem,$line");
@@ -703,36 +690,21 @@ if ($fwhostsettings{'ACTION'} eq 'savegrp')
 		#append new entries
 		my $key = &General::findhasharraykey (\%customgrp);
 		foreach my $line (@newgrp){
-			foreach my $i (0 .. 4) { $customgrp{$key}[$i] = "";}
+			foreach my $i (0 .. 3) { $customgrp{$key}[$i] = "";}
 			my ($a,$b,$c,$d) = split (",",$line);
 			$customgrp{$key}[0] = $a;
 			$customgrp{$key}[1] = $b;
 			$customgrp{$key}[2] = $c;
 			$customgrp{$key}[3] = $type;
-			$customgrp{$key}[4] = $count;
 		}
 		&General::writehasharray("$configgrp", \%customgrp);
 		#update counter in Host/Net
-		if($updcounter eq 'net'){
-			foreach my $key (keys %customnetwork) {
-				if($customnetwork{$key}[0] eq $fwhostsettings{'CUST_SRC_NET'}){
-					$customnetwork{$key}[4] = $customnetwork{$key}[4]+1;
-					last;
-				}
-			}
-			&General::writehasharray("$confignet", \%customnetwork);
-		}elsif($updcounter eq 'host'){
-			foreach my $key (keys %customhost) {
-				if ($customhost{$key}[0] eq $fwhostsettings{'CUST_SRC_HOST'}){
-					$customhost{$key}[4]=$customhost{$key}[4]+1;
-				}
-			}
-			&General::writehasharray("$confighost", \%customhost);
-		}
 		$fwhostsettings{'update'}='on';
 	}
 		#check if ruleupdate is needed
-		if($count > 0 )
+		my $netgrpcount=0;
+		$netgrpcount=&getnetcount($grp);
+		if($netgrpcount > 0 )
 		{
 			&General::firewall_config_changed();
 		}
@@ -1128,6 +1100,52 @@ if ($fwhostsettings{'ACTION'} eq 'changesrvgrpremark')
 	&addservicegrp;
 	&viewtableservicegrp;
 }
+if ($fwhostsettings{'ACTION'} eq 'changesrvgrpname')
+{
+	&General::readhasharray("$configsrvgrp", \%customservicegrp );
+	if ($fwhostsettings{'oldsrvgrpname'} ne $fwhostsettings{'srvgrp'}){
+		#Check new groupname
+		if (!&validhostname($fwhostsettings{'srvgrp'})){
+			$errormessage.=$Lang::tr{'fwhost err name'}."<br>";
+		}
+		if (!$errormessage){
+			#Rename group in customservicegroup
+			foreach my $key (keys %customservicegrp) {
+				if($customservicegrp{$key}[0] eq $fwhostsettings{'oldsrvgrpname'}){
+					$customservicegrp{$key}[0]=$fwhostsettings{'srvgrp'};
+				}
+			}
+			&General::writehasharray("$configsrvgrp", \%customservicegrp );
+			#change name in FW Rules
+			&changenameinfw($fwhostsettings{'oldsrvgrpname'},$fwhostsettings{'srvgrp'},15);
+		}
+	}
+	&addservicegrp;
+	&viewtableservicegrp;
+}
+if ($fwhostsettings{'ACTION'} eq 'changegrpname')
+{
+	&General::readhasharray("$configgrp", \%customgrp );
+	if ($fwhostsettings{'oldgrpname'} ne $fwhostsettings{'grp'}){
+		#Check new groupname
+		if (!&validhostname($fwhostsettings{'grp'})){
+			$errormessage.=$Lang::tr{'fwhost err name'}."<br>";
+		}
+		if (!$errormessage){
+			#Rename group in customservicegroup
+			foreach my $key (keys %customgrp) {
+				if($customgrp{$key}[0] eq $fwhostsettings{'oldgrpname'}){
+					$customgrp{$key}[0]=$fwhostsettings{'grp'};
+				}
+			}
+			&General::writehasharray("$configgrp", \%customgrp );
+			#change name in FW Rules
+			&changenameinfw($fwhostsettings{'oldgrpname'},$fwhostsettings{'grp'},6);
+		}
+	}
+	&addgrp;
+	&viewtablegrp;
+}
 ###  VIEW  ###
 if($fwhostsettings{'ACTION'} eq '')
 {
@@ -1215,6 +1233,7 @@ sub addgrp
 	$checked{'check1'}{'on'} = '';
 	$checked{'grp2'}{$fwhostsettings{'grp2'}} = 'CHECKED';
 	$fwhostsettings{'oldremark'}=$fwhostsettings{'remark'};
+	$fwhostsettings{'oldgrpname'}=$fwhostsettings{'grp_name'};
 	my $grp=$fwhostsettings{'grp_name'};
 	my $rem=$fwhostsettings{'remark'};
 		if ($fwhostsettings{'update'} eq ''){   
@@ -1227,8 +1246,8 @@ END
 		}else{
 			print<<END;
 			<table width='100%' border='0'><form method='post' style='display:inline'>
-			<tr><td nowrap='nowrap' width='12%'>$Lang::tr{'fwhost addgrpname'}</td><td><input type='TEXT' name='grp'  value='$fwhostsettings{'grp_name'}' readonly ></td><td></td></tr>
-			<tr><td>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='newrem' size='45' value='$fwhostsettings{'remark'}' style='width:98%'></td><td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldrem' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='ACTION' value='changegrpremark' ></td></tr></table></form>
+			<tr><td nowrap='nowrap' width='12%'>$Lang::tr{'fwhost addgrpname'}</td><td width='20%'><input type='TEXT' name='grp'  value='$fwhostsettings{'grp_name'}' ></td><td><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldgrpname' value='$fwhostsettings{'oldgrpname'}'><input type='hidden' name='ACTION' value='changegrpname'></td><td></td></form></tr>
+			<tr><form method='post' style='display:inline'><td>$Lang::tr{'remark'}:</td><td colspan='2'><input type='TEXT' name='newrem' size='45' value='$fwhostsettings{'remark'}' style='width:98%'></td><td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldrem' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='ACTION' value='changegrpremark' ></td></tr></table></form>
 			<hr>
 END
 		}
@@ -1392,6 +1411,7 @@ sub addservicegrp
 	&showmenu;
 	&Header::openbox('100%', 'left', $Lang::tr{'fwhost addservicegrp'});
 	$fwhostsettings{'oldsrvgrpremark'}=$fwhostsettings{'SRVGRP_REMARK'};
+	$fwhostsettings{'oldsrvgrpname'}=$fwhostsettings{'SRVGRP_NAME'};
 	if ($fwhostsettings{'updatesrvgrp'} eq ''){
 		print<<END;
 		<table width='100%' border='0'><form method='post'>
@@ -1403,9 +1423,9 @@ END
 	}else{
 		print<<END;
 		<table width='100%' border='0'><form method='post' style='display:inline'>
-		<tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td><input type='text' name='srvgrp' value='$fwhostsettings{'SRVGRP_NAME'}' readonly  size='14'></td><td width='3%'></td></tr>
-		<tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='text' name='newsrvrem'  value='$fwhostsettings{'SRVGRP_REMARK'}' style='width:98%;'></td><td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvrem' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='changesrvgrpremark' ></td></tr>
-		<tr><td colspan='3'><br><hr></td></td></tr>
+		<tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td width='20%'><input type='text' name='srvgrp' value='$fwhostsettings{'SRVGRP_NAME'}' size='14'></td><td align='left'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvgrpname' value='$fwhostsettings{'oldsrvgrpname'}'><input type='hidden' name='ACTION' value='changesrvgrpname'></td><td width='3%'></td></form></tr>
+		<tr><form method='post'><td width='10%'>$Lang::tr{'remark'}:</td><td colspan='2'><input type='text' name='newsrvrem'  value='$fwhostsettings{'SRVGRP_REMARK'}' style='width:98%;'></td><td align='right'><input type='submit' value='$Lang::tr{'fwhost change'}'><input type='hidden' name='oldsrvrem' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='changesrvgrpremark' ></td></tr>
+		<tr><td colspan='4'><br><hr></td></td></tr>
 		</table></form>
 END
 	}
@@ -1450,6 +1470,10 @@ sub viewtablenet
 	if(! -z $confignet){
 		&Header::openbox('100%', 'left', $Lang::tr{'fwhost cust net'});
 		&General::readhasharray("$confignet", \%customnetwork);
+		&General::readhasharray("$configgrp", \%customgrp);
+		&General::readhasharray("$fwconfigfwd", \%fwfwd);
+		&General::readhasharray("$fwconfiginp", \%fwinp);
+		&General::readhasharray("$fwconfigout", \%fwout);
 		if (!keys %customnetwork) 
 		{ 
 			print "<center><b>$Lang::tr{'fwhost empty'}</b>"; 
@@ -1471,7 +1495,8 @@ END
 				print" <tr bgcolor='$color{'color20'}'>";
 			}
 			my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]);
-			print"<td width='20%'><form method='post'>$customnetwork{$key}[0]</td><td width='15%' align='center'>".&Header::colorize($colnet)."</td><td width='40%'>$customnetwork{$key}[3]</td><td align='center'>$customnetwork{$key}[4]x</td>";
+			my $netcount=&getnetcount($customnetwork{$key}[0]);
+			print"<td width='20%'><form method='post'>$customnetwork{$key}[0]</td><td width='15%' align='center'>".&Header::colorize($colnet)."</td><td width='40%'>$customnetwork{$key}[3]</td><td align='center'>$netcount x</td>";
 			print<<END;
 			<td width='1%'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} />
 			<input type='hidden' name='ACTION' value='editnet'>
@@ -1481,7 +1506,7 @@ END
 			<input type='hidden' name='NETREMARK' value='$customnetwork{$key}[3]' />
 			</td></form>
 END
-			if($customnetwork{$key}[4] == '0')
+			if($netcount == '0')
 			{
 				print"<td width='1%'><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} /><input type='hidden' name='ACTION' value='delnet' /><input type='hidden' name='key' value='$customnetwork{$key}[0]' /></td></form></tr>";
 			}else{
@@ -1549,6 +1574,10 @@ sub viewtablehost
 		&General::readhasharray("$confighost", \%customhost);
 		&General::readhasharray("$configccdnet", \%ccdnet);
 		&General::readhasharray("$configccdhost", \%ccdhost);
+		&General::readhasharray("$fwconfigfwd", \%fwfwd);
+		&General::readhasharray("$fwconfiginp", \%fwinp);
+		&General::readhasharray("$fwconfigout", \%fwout);
+		&General::readhasharray("$configgrp", \%customgrp);
 		if (!keys %customhost) 
 		{ 
 			print "<center><b>$Lang::tr{'fwhost empty'}</b>"; 
@@ -1566,7 +1595,9 @@ END
 			else{            print" <tr bgcolor='$color{'color20'}'>";}
 			my ($ip,$sub)=split(/\//,$customhost{$key}[2]);
 			$customhost{$key}[4]=~s/\s+//g;
-			print"<td width='20%'>$customhost{$key}[0]</td><td width='20%' align='center' ".&getcolor($ip).">".&Header::colorize($ip)."</td><td width='50%' align='left'>$customhost{$key}[3]</td><td align='center'>$customhost{$key}[4]x</td>";
+			my $hostcount=0;
+			$hostcount=&gethostcount($customhost{$key}[0]);
+			print"<td width='20%'>$customhost{$key}[0]</td><td width='20%' align='center' ".&getcolor($ip).">".&Header::colorize($ip)."</td><td width='50%' align='left'>$customhost{$key}[3]</td><td align='center'>$hostcount x</td>";
 			print<<END;
 			<td width='1%'><form method='post'><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} />
 			<input type='hidden' name='ACTION' value='edithost' />
@@ -1576,7 +1607,7 @@ END
 			<input type='hidden' name='HOSTREMARK' value='$customhost{$key}[3]' />
 			</form></td>
 END
-			if($customhost{$key}[4] == '0')
+			if($hostcount == '0')
 			{
 				print"<td width='1%'><form method='post'><input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} /><input type='hidden' name='ACTION' value='delhost' /><input type='hidden' name='key' value='$customhost{$key}[0]' /></td></form></tr>";
 			}else{
@@ -1598,6 +1629,9 @@ sub viewtablegrp
 	&General::readhasharray("$configccdnet", \%ccdnet);
 	&General::readhasharray("$confighost", \%customhost);
 	&General::readhasharray("$confignet", \%customnetwork);
+	&General::readhasharray("$fwconfigfwd", \%fwfwd);
+	&General::readhasharray("$fwconfiginp", \%fwinp);
+	&General::readhasharray("$fwconfigout", \%fwout);
 	my @grp=();
 	my $helper='';
 	my $count=1;
@@ -1606,7 +1640,7 @@ sub viewtablegrp
 	my $number;
 	my $delflag;
 	if (!keys %customgrp) 
-	{ 
+	{
 		print "<center><b>$Lang::tr{'fwhost err emptytable'}</b>";
 	}else{
 		foreach my $key (sort { ncmp($customgrp{$a}[0],$customgrp{$b}[0]) } sort { ncmp($customgrp{$a}[2],$customgrp{$b}[2]) } keys %customgrp){
@@ -1629,8 +1663,9 @@ sub viewtablegrp
 				if($count gt 1){ print"</table>";}
 				print "<br><b><u>$grpname</u></b>&nbsp; &nbsp;";
 				print " <b>$Lang::tr{'remark'}:</b>&nbsp $remark &nbsp " if ($remark ne '');
-				print "<b>$Lang::tr{'used'}:</b> $customgrp{$key}[4]x";
-				if($customgrp{$key}[4] == '0')
+				my $netgrpcount=&getnetcount($grpname);
+				print "<b>$Lang::tr{'used'}:</b> $netgrpcount x";
+				if($netgrpcount == '0')
 				{
 					print"<form method='post' style='display:inline'><input type='image' src='/images/delete.gif' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='ACTION' value='delgrp'></form>";
 				}
@@ -1660,7 +1695,7 @@ sub viewtablegrp
 				$ip="$colip/".&General::subtocidr($colsub) if ($colsub);
 				print"<td align='center' ".&getcolor($colip).">".&Header::colorize($ip)."</td><td align='center'>$customgrp{$key}[3]</td><td width='1%'><form method='post'>";
 			}
-			if ($delflag > '1' && $ip ne ''){
+			if ($delflag > 1 && $ip ne ''){
 				print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />";
 			}
 			print"<input type='hidden' name='ACTION' value='deletegrphost'><input type='hidden' name='grpcnt' value='$customgrp{$key}[4]'><input type='hidden' name='update' value='$fwhostsettings{'update'}'><input type='hidden' name='delhost' value='$grpname,$remark,$customgrp{$key}[2],$customgrp{$key}[3]'></form></td></tr>";
@@ -1930,6 +1965,84 @@ sub get_name
 		return "$network" if ($val eq $defaultNetworks{$network}{'NAME'});
 	}	
 }
+sub gethostcount
+{
+	my $searchstring=shift;
+	my $srvcounter=0;
+	#Count services used in servicegroups
+	foreach my $key (keys %customgrp) {
+		if($customgrp{$key}[2] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - config
+	foreach my $key1 (keys %fwfwd) {
+		if($fwfwd{$key1}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwfwd{$key1}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - input
+	foreach my $key2 (keys %fwinp) {
+		if($fwinp{$key2}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwinp{$key2}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - outgoing
+	foreach my $key3 (keys %fwout) {
+		if($fwout{$key3}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwout{$key3}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	return $srvcounter;
+}
+sub getnetcount
+{
+	my $searchstring=shift;
+	my $srvcounter=0;
+	#Count services used in servicegroups
+	foreach my $key (keys %customgrp) {
+		if($customgrp{$key}[2] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - config
+	foreach my $key1 (keys %fwfwd) {
+		if($fwfwd{$key1}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwfwd{$key1}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - input
+	foreach my $key2 (keys %fwinp) {
+		if($fwinp{$key2}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwinp{$key2}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	#Count services used in firewall - outgoing
+	foreach my $key3 (keys %fwout) {
+		if($fwout{$key3}[4] eq $searchstring){
+			$srvcounter++;
+		}
+		if($fwout{$key3}[6] eq $searchstring){
+			$srvcounter++;
+		}
+	}
+	return $srvcounter;
+}
 sub getsrvcount
 {
 	my $searchstring=shift;
@@ -2218,6 +2331,36 @@ sub decreaseservice
 	&General::writehasharray("$configsrv", \%customservice);
 	
 }
+sub changenameinfw
+{
+	my $old=shift;
+	my $new=shift;
+	my $fld=shift;
+	&General::readhasharray("$fwconfigfwd", \%fwfwd);
+	&General::readhasharray("$fwconfiginp", \%fwinp);
+	&General::readhasharray("$fwconfigout", \%fwout);
+	#Rename group in Firewall-CONFIG
+	foreach my $key1 (keys %fwfwd) {
+		if($fwfwd{$key1}[$fld] eq $old){
+			$fwfwd{$key1}[$fld]=$new;
+		}
+	}
+	&General::writehasharray("$fwconfigfwd", \%fwfwd );
+	#Rename group in Firewall-INPUT
+	foreach my $key2 (keys %fwinp) {
+		if($fwinp{$key2}[$fld] eq $old){
+			$fwinp{$key2}[$fld]=$new;
+		}
+	}
+	&General::writehasharray("$fwconfiginp", \%fwinp );
+	#Rename group in Firewall-OUTGOING
+	foreach my $key3 (keys %fwout) {
+		if($fwout{$key3}[$fld] eq $old){
+			$fwout{$key3}[$fld]=$new;
+		}
+	}
+	&General::writehasharray("$fwconfigout", \%fwout );
+}
 sub checkports
 {
 	


hooks/post-receive
--
IPFire 2.x development tree

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2013-12-20 11:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-20 11:18 [git.ipfire.org] IPFire 2.x development tree branch, fifteen, updated. a8b113e73d9e8b71eb57621109d7c4a6b46c34e2 git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox