]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - html/cgi-bin/fwhosts.cgi
Layout of fwhosts title
[people/teissler/ipfire-2.x.git] / html / cgi-bin / fwhosts.cgi
old mode 100755 (executable)
new mode 100644 (file)
index 3e59a9d..16c91bd
@@ -84,7 +84,7 @@ unless (-e $configsrvgrp) { system("touch $configsrvgrp"); }
 &Header::getcgihash(\%fwhostsettings);
 
 &Header::showhttpheaders();
-&Header::openpage($Lang::tr{'fwhost hosts'}, 1, '');
+&Header::openpage($Lang::tr{'fwhost menu'}, 1, '');
 &Header::openbigbox('100%', 'center');
 
 #### JAVA SCRIPT ####
@@ -239,20 +239,12 @@ if ($fwhostsettings{'ACTION'} eq 'updateservice')
                        foreach my $key (sort keys %customservicegrp){
                                if($customservicegrp{$key}[2] eq $fwhostsettings{'oldsrvname'}){
                                        $customservicegrp{$key}[2] = $fwhostsettings{'SRV_NAME'};
+                                       &checkrulereload($customservicegrp{$key}[0]);
                                }
                        }
                        &General::writehasharray("$configsrvgrp", \%customservicegrp);
-                       $needrules='on';
-               }
-               if($count gt 0 && $fwhostsettings{'oldsrvport'} ne $fwhostsettings{'SRV_PORT'} ){
-                       $needrules='on';
-               }
-               if($count gt 0 && $fwhostsettings{'oldsrvprot'} ne $fwhostsettings{'PROT'} ){
-                       $needrules='on';
-               }
-               if($count gt 0 && $fwhostsettings{'oldsrvicmp'} ne $fwhostsettings{'ICMP'} ){
-                       $needrules='on';
                }
+               &checkrulereload($fwhostsettings{'SRV_NAME'});
                $fwhostsettings{'SRV_NAME'}     = '';
                $fwhostsettings{'SRV_PORT'}     = '';
                $fwhostsettings{'PROT'}         = '';
@@ -266,9 +258,6 @@ if ($fwhostsettings{'ACTION'} eq 'updateservice')
                $fwhostsettings{'ICMP'}         = $fwhostsettings{'oldsrvicmp'};
                $fwhostsettings{'updatesrv'}= 'on';
        }
-       if($needrules eq 'on'){
-               &General::firewall_config_changed();
-       }
        &addservice;
 }
 # save
@@ -751,7 +740,6 @@ if ($fwhostsettings{'ACTION'} eq 'saveservicegrp')
 {
        my $prot;
        my $port;
-       my $count=0;
        my $tcpcounter=0;
        my $udpcounter=0;
        &General::readhasharray("$configsrvgrp", \%customservicegrp );
@@ -818,9 +806,7 @@ if ($fwhostsettings{'ACTION'} eq 'saveservicegrp')
                &General::writehasharray("$configsrvgrp", \%customservicegrp );
                $fwhostsettings{'updatesrvgrp'}='on';
        }
-       if ($count gt 0){
-               &General::firewall_config_changed();
-       }
+       &checkrulereload($fwhostsettings{'SRVGRP_NAME'});
        &addservicegrp;
        &viewtableservicegrp;
 }
@@ -1153,13 +1139,13 @@ if($fwhostsettings{'ACTION'} eq '')
 }
 ###  FUNCTIONS  ###
 sub showmenu {
-       &Header::openbox('100%', 'left',$Lang::tr{'fwhost menu'});
+       &Header::openbox('100%', 'left',);
        print "$Lang::tr{'fwhost welcome'}";
        print<<END;
        <br><br><table border='0' width='100%'>
        <tr><td><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newnet'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newhost'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newgrp'}' ></form></td>
        <td align='right'><form method='post'><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservice'}' ><input type='submit' name='ACTION' value='$Lang::tr{'fwhost newservicegrp'}' ></form></td></tr>
-       <tr><td colspan='6'><hr></td></tr></table>
+       <tr><td colspan='6'></td></tr></table>
 END
        &Header::closebox();
        
@@ -1173,19 +1159,19 @@ sub addnet
        $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};
        $fwhostsettings{'orgnetremark'}=$fwhostsettings{'NETREMARK'};
        print<<END;
-       <table border='0' width='100%'>
+       <table border='0' width='100%' >
        <tr><td width='15%'>$Lang::tr{'name'}:</td><td><form method='post'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr>
        <tr><td>$Lang::tr{'fwhost netaddress'}:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr>
        <tr><td>$Lang::tr{'netmask'}:</td><td><input type='TEXT' name='SUBNET' value='$fwhostsettings{'SUBNET'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='15'></td></tr>
        <tr><td>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='NETREMARK' value='$fwhostsettings{'NETREMARK'}' style='width: 98.5%;'></td></tr>
-       <tr><td colspan='6'><br><hr></td></tr><tr>
+       <tr><td colspan='6'><br></td></tr><tr>
 END
        if ($fwhostsettings{'ACTION'} eq 'editnet' || $fwhostsettings{'error'} eq 'on')
        {
-               print "<td colspan='6' align='right' ><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='updatenet'><input type='hidden' name='orgnetremark' value='$fwhostsettings{'orgnetremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newnet' value='$fwhostsettings{'newnet'}'></td>";
+               print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'update'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='updatenet'><input type='hidden' name='orgnetremark' value='$fwhostsettings{'orgnetremark'}' ><input type='hidden' name='orgname' value='$fwhostsettings{'orgname'}' ><input type='hidden' name='update' value='on'><input type='hidden' name='newnet' value='$fwhostsettings{'newnet'}'>";
        }else{
-               print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'/><input type='hidden' name='ACTION' value='savenet'><input type='hidden' name='newnet' value='on'>";
-       }       
+               print "<td colspan='6' align='right'><input type='submit' value='$Lang::tr{'save'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='savenet'><input type='hidden' name='newnet' value='on'>";
+       }
        print "</form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;' ><input type='hidden' name='ACTION' value='resetnet'></form></td></tr></table>";
        &Header::closebox();
 }
@@ -1197,11 +1183,11 @@ sub addhost
        $fwhostsettings{'orgname'}=$fwhostsettings{'HOSTNAME'};
        $fwhostsettings{'orgremark'}=$fwhostsettings{'HOSTREMARK'};
        print<<END;
-       <table border='0' width='100%'>
+       <table width='100%'>
        <tr><td>$Lang::tr{'name'}:</td><td><form method='post' style='display:inline;'><input type='TEXT' name='HOSTNAME' id='textbox1' value='$fwhostsettings{'HOSTNAME'}' $fwhostsettings{'BLK_HOST'} size='20'><script>document.getElementById('textbox1').focus()</script></td></tr>
        <tr><td>IP/MAC:</td><td><input type='TEXT' name='IP' value='$fwhostsettings{'IP'}' $fwhostsettings{'BLK_IP'} size='20' maxlength='17'></td></tr>
        <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='TEXT' name='HOSTREMARK' value='$fwhostsettings{'HOSTREMARK'}' style='width:98%;'></td></tr>
-       <tr><td colspan='5'><hr></td></tr><tr>
+       <tr><td colspan='5'><br></td></tr><tr>
 END
 
        if ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'} eq 'on')
@@ -1238,17 +1224,36 @@ sub addgrp
        my $rem=$fwhostsettings{'remark'};
                if ($fwhostsettings{'update'} eq ''){   
                        print<<END;
-                       <table width='100%' border='0'>
-                       <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td><form method='post'><input type='TEXT' name='grp_name' value='$fwhostsettings{'grp_name'}' size='20'></td></tr>
-                       <tr><td width='10%'>$Lang::tr{'remark'}:</td><td ><input type='TEXT' name='remark' value='$fwhostsettings{'remark'}' style='width: 98%;'></td></tr>
-                       <tr><td colspan='2'><br><hr></td></tr></table>
+               <table width='100%' border='0'>
+                       <tr>
+                               <td width='10%'>$Lang::tr{'fwhost addgrpname'}</td>
+                               <td><form method='post'><input type='TEXT' name='grp_name' value='$fwhostsettings{'grp_name'}' size='20'></td>
+                       </tr>
+                       <tr>
+                               <td width='10%'>$Lang::tr{'remark'}:</td>
+                               <td ><input type='TEXT' name='remark' value='$fwhostsettings{'remark'}' style='width: 98%;'></td>
+                       </tr>
+                       <tr>
+                               <td colspan='2'><br></td>
+                       </tr>
+               </table>
 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 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>
+                               <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>
+                       <br><br>
 END
                }
                if ($fwhostsettings{'update'} eq 'on'){
@@ -1277,14 +1282,14 @@ END
                        }
                        print"</select></td></tr>";
                        if (! -z $confignet){
-                               print"<tr><td><input type='radio' name='grp2' id='CUST_SRC_NET' value='cust_net' $checked{'grp2'}{'cust_net'}></td><td>$Lang::tr{'fwhost cust net'}</td><td><select name='CUST_SRC_NET' style='min-width:185px;'>";
+                               print"<tr><td><input type='radio' name='grp2' id='CUST_SRC_NET' value='cust_net' $checked{'grp2'}{'cust_net'}></td><td>$Lang::tr{'fwhost cust net'}:</td><td><select name='CUST_SRC_NET' style='min-width:185px;'>";
                                foreach my $key (sort { ncmp($customnetwork{$a}[0],$customnetwork{$b}[0]) } keys  %customnetwork) {
                                        print"<option>$customnetwork{$key}[0]</option>";
                                }
                                print"</select></td></tr>";
                        }
                        if (! -z $confighost){
-                               print"<tr><td valign='top'><input type='radio' name='grp2' id='CUST_SRC_HOST' value='cust_host' $checked{'grp2'}{'cust_host'}></td><td valign='top'>$Lang::tr{'fwhost cust addr'}</td><td><select name='CUST_SRC_HOST' style='min-width:185px;'>";
+                               print"<tr><td valign='top'><input type='radio' name='grp2' id='CUST_SRC_HOST' value='cust_host' $checked{'grp2'}{'cust_host'}></td><td valign='top'>$Lang::tr{'fwhost cust addr'}:</td><td><select name='CUST_SRC_HOST' style='min-width:185px;'>";
                                foreach my $key (sort { ncmp($customhost{$a}[0],$customhost{$b}[0]) } keys %customhost) {
                                        print"<option>$customhost{$key}[0]</option>";
                                }
@@ -1315,7 +1320,7 @@ END
                        #OVPN n2n networks
                        foreach my $key (sort { ncmp($ccdhost{$a}[1],$ccdhost{$b}[1]) } keys %ccdhost) {
                                if($ccdhost{$key}[3] eq 'net'){
-                                       print"<td width='1%'><input type='radio' name='grp2' id='OVPN_N2N' value='ovpn_n2n' $checked{'grp2'}{'ovpn_n2n'}></td><td valign='top'>$Lang::tr{'fwhost ovpn_n2n'}</td><td colspan='3'><select name='OVPN_N2N' style='min-width:185px;'>" if ($show eq '');
+                                       print"<td width='1%'><input type='radio' name='grp2' id='OVPN_N2N' value='ovpn_n2n' $checked{'grp2'}{'ovpn_n2n'}></td><td valign='top'>$Lang::tr{'fwhost ovpn_n2n'}:</td><td colspan='3'><select name='OVPN_N2N' style='min-width:185px;'>" if ($show eq '');
                                        $show='1';
                                        print"<option>$ccdhost{$key}[1]</option>";
                                }
@@ -1332,9 +1337,9 @@ END
                        if ($show eq '1'){$show='';print"</select></td></tr>";}
                        print"</table>";
                        print"</td></tr></table>";
-                       print"<br><br><hr>";
+                       print"<br><br>";
                }
-               print"<table border='0' width='100%'>";
+               print"<table width='100%'>";
                print"<tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='oldremark' value='$fwhostsettings{'oldremark'}'><input type='hidden' name='update' value=\"$fwhostsettings{'update'}\"><input type='hidden' name='ACTION' value='savegrp' ></form><form method='post' style='display:inline'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'><input type='hidden' name='ACTION' value='resetgrp'></form></td></table>";
        &Header::closebox();
 }
@@ -1380,7 +1385,7 @@ END
        print<<END;
        </select></td></tr></table></div>
        <div id='PORT' class='noscript'><table width='100%' border='0'><tr><td width='10%'>$Lang::tr{'fwhost port'}:</td><td><input type='text' name='SRV_PORT' value='$fwhostsettings{'SRV_PORT'}' maxlength='11' size='24'></td></tr></table></div>
-       <table width='100%' border='0'><tr><td colspan='6'><br><hr></td></tr>
+       <table width='100%' border='0'><tr><td colspan='6'><br></td></tr>
        <tr><td colspan='6' align='right'>
 END
        if ($fwhostsettings{'updatesrv'} eq 'on')
@@ -1417,22 +1422,22 @@ sub addservicegrp
                <table width='100%' border='0'><form method='post'>
                <tr><td width='10%'>$Lang::tr{'fwhost addgrpname'}</td><td><input type='text' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}' size='24'></td></tr>
                <tr><td width='10%'>$Lang::tr{'remark'}:</td><td><input type='text' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}' style='width: 98%;'></td></tr>
-               <tr><td colspan='2'><br><hr></tr>
+               <tr><td colspan='2'><br></tr>
                </table>
 END
        }else{
                print<<END;
-               <table width='100%' border='0'><form method='post' style='display:inline'>
+               <table width='100%'><form method='post' style='display:inline'>
                <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>
+               <tr><td colspan='4'><br></td></td></tr>
                </table></form>
 END
        }
        if($fwhostsettings{'updatesrvgrp'} eq 'on'){
        print<<END;
        <form method='post'><input type='hidden' name='SRVGRP_REMARK' value='$fwhostsettings{'SRVGRP_REMARK'}'><input type='hidden' name='SRVGRP_NAME' value='$fwhostsettings{'SRVGRP_NAME'}'><table border='0' width='100%'>
-       <tr><td width='1%' nowrap='nowrap'>$Lang::tr{'add'}</td><td><select name='CUST_SRV' style='min-width:185px;'>
+       <tr><td width='10%' nowrap='nowrap'>$Lang::tr{'add'}: </td><td><select name='CUST_SRV' style='min-width:185px;'>
 END
        &General::readhasharray("$configsrv", \%customservice);
        #Protocols for use in servicegroups
@@ -1453,12 +1458,12 @@ END
        print<<END;
        </select></td></tr>
        <tr><td colspan='4'><br><br></td></tr>
-       <tr><td colspan='4'><hr></td></tr>
+       <tr><td colspan='4'></td></tr>
        </table>
 END
        }
        print<<END;
-       <table width='100%' border='0'>
+       <table width='100%'>
        <tr><td align='right'><input type='submit' value='$Lang::tr{'add'}' style='min-width:100px;' /><input type='hidden' name='updatesrvgrp' value='$fwhostsettings{'updatesrvgrp'}'><input type='hidden' name='oldsrvgrpremark' value='$fwhostsettings{'oldsrvgrpremark'}'><input type='hidden' name='ACTION' value='saveservicegrp' ></form><form style='display:inline;' method='post'><input type='submit' value='$Lang::tr{'fwhost back'}' style='min-width:100px;'></td></tr>
        </table></form>
 END
@@ -1479,26 +1484,30 @@ sub viewtablenet
                        print "<center><b>$Lang::tr{'fwhost empty'}</b>"; 
                }else{
                        print<<END;
-                       <table border='0' width='100%' cellspacing='0'>
-                       <tr><td align='center'><b>$Lang::tr{'name'}</b></td><td align='center'><b>$Lang::tr{'fwhost netaddress'}</b></td><td align='center'><b>$Lang::tr{'remark'}</b></td><td align='center'><b>$Lang::tr{'used'}</b></td><td></td><td width='3%'></td></tr>
+                       <table width='100%' cellspacing='0' class='tbl'>
+                       <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost netaddress'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr>
 END
                }
                my $count=0;
+               my $col='';
                foreach my $key (sort {ncmp($a,$b)} keys %customnetwork) {
                        if ($fwhostsettings{'ACTION'} eq 'editnet' && $fwhostsettings{'HOSTNAME'} eq $customnetwork{$key}[0]) {
-                               print" <tr bgcolor='${Header::colouryellow}'>";
+                               print" <tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
                        }elsif ($count % 2)
                        { 
-                               print" <tr bgcolor='$color{'color22'}'>";
+                               $col="bgcolor='$color{'color20'}'";
+                               print" <tr>";# bgcolor='$color{'color20'}'>";
                        }else
                        {
-                               print" <tr bgcolor='$color{'color20'}'>";
+                               $col="bgcolor='$color{'color22'}'";
+                               print" <tr>";# bgcolor='$color{'color22'}'>";
                        }
                        my $colnet="$customnetwork{$key}[1]/".&General::subtocidr($customnetwork{$key}[2]);
                        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"<td width='20%' $col><form method='post'>$customnetwork{$key}[0]</td><td width='15%' align='center' $col>".&Header::colorize($colnet)."</td><td width='40%' $col>$customnetwork{$key}[3]</td><td align='center' $col>$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'} />
+                       <td width='1%' $col><input type='image' src='/images/edit.gif' align='middle' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} />
                        <input type='hidden' name='ACTION' value='editnet'>
                        <input type='hidden' name='HOSTNAME' value='$customnetwork{$key}[0]' />
                        <input type='hidden' name='IP' value='$customnetwork{$key}[1]' />
@@ -1508,9 +1517,9 @@ END
 END
                        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>";
+                               print"<td width='1%' $col><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{
-                               print"<td></td></tr>";
+                               print"<td $col></td></tr>";
                        }
                        $count++;
                }
@@ -1583,23 +1592,30 @@ sub viewtablehost
                        print "<center><b>$Lang::tr{'fwhost empty'}</b>"; 
                }else{
                print<<END;
-               <table border='0' width='100%' cellspacing='0'>
-               <tr><td align='center'><b>$Lang::tr{'name'}</b></td><td align='center'><b>$Lang::tr{'fwhost ip_mac'}</b></td><td align='center'><b>$Lang::tr{'remark'}</b></td><td align='center'><b>$Lang::tr{'used'}</b></td><td></td><td width='3%'></td></tr>
+               <table width='100%' cellspacing='0' class='tbl'>
+               <tr><th align='center'><b>$Lang::tr{'name'}</b></th><th align='center'><b>$Lang::tr{'fwhost ip_mac'}</b></th><th align='center'><b>$Lang::tr{'remark'}</b></th><th align='center'><b>$Lang::tr{'used'}</b></th><th></th><th width='3%'></th></tr>
 END
        }
                my $count=0;
+               my $col='';
                foreach my $key (sort { ncmp ($customhost{$a}[0],$customhost{$b}[0])} keys %customhost) {
                        if ( ($fwhostsettings{'ACTION'} eq 'edithost' || $fwhostsettings{'error'}) && $fwhostsettings{'HOSTNAME'} eq $customhost{$key}[0]) {
-                               print" <tr bgcolor='${Header::colouryellow}'>";
-                       }elsif ($count % 2){ print" <tr bgcolor='$color{'color22'}'>";}
-                       else{            print" <tr bgcolor='$color{'color20'}'>";}
+                               print" <tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
+                       }elsif ($count % 2){
+                               print" <tr>";
+                               $col="bgcolor='$color{'color20'}'";
+                       }else{
+                               $col="bgcolor='$color{'color22'}'";
+                               print" <tr>";
+                       }
                        my ($ip,$sub)=split(/\//,$customhost{$key}[2]);
                        $customhost{$key}[4]=~s/\s+//g;
                        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"<td width='20%' $col>$customhost{$key}[0]</td><td width='20%' align='center' $col ".&getcolor($ip).">".&Header::colorize($ip)."</td><td width='50%' align='left' $col>$customhost{$key}[3]</td><td align='center' $col>$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'} />
+                       <td width='1%' $col><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' />
                        <input type='hidden' name='HOSTNAME' value='$customhost{$key}[0]' />
                        <input type='hidden' name='IP' value='$ip' />
@@ -1609,9 +1625,9 @@ END
 END
                        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>";
+                               print"<td width='1%' $col><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{
-                               print"<td width='1%'></td></tr>";
+                               print"<td width='1%' $col></td></tr>";
                        }
                        $count++;
                }
@@ -1670,30 +1686,36 @@ sub viewtablegrp
                                        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>";
                                }
                                print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} align='right' /><input type='hidden' name='grp_name' value='$grpname' ><input type='hidden' name='remark' value='$remark' ><input type='hidden' name='ACTION' value='editgrp'></form>";
-                               print"<table width='100%' style='border: 1px solid  #CCCCCC;' rules='none' cellspacing='0'><tr><td align='center'><b>Name</b></td><td align='center'><b>$Lang::tr{'ip address'}</b></td><td align='center' width='25%'><b>$Lang::tr{'fwhost type'}</td><td></td></tr>";
+                               print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>Name</b></th><th align='center'><b>$Lang::tr{'ip address'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost type'}</th><th></th></tr>";
                        }
-                       
+                       my $col='';
                        if ( ($fwhostsettings{'ACTION'} eq 'editgrp' || $fwhostsettings{'update'} ne '') && $fwhostsettings{'grp_name'} eq $customgrp{$key}[0]) {
-                               print" <tr bgcolor='${Header::colouryellow}'>";
+                               print" <tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
                        }elsif ($count %2 == 0){
-                               print"<tr bgcolor='$color{'color22'}'>";
+                               print"<tr>";
+                               $col="bgcolor='$color{'color22'}'";
                        }else{
-                               print"<tr bgcolor='$color{'color20'}'>";
+                               print"<tr>";
+                               $col="bgcolor='$color{'color20'}'";
                        }
                        my $ip=&getipforgroup($customgrp{$key}[2],$customgrp{$key}[3]); 
-                       if ($ip eq ''){print"<tr bgcolor='${Header::colouryellow}'>";}
-                       print "<td width='39%' align='left'>";
+                       if ($ip eq ''){
+                               print"<tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
+                       }
+                       print "<td width='39%' align='left' $col>";
                        if($customgrp{$key}[3] eq 'Standard Network'){
                                print &get_name($customgrp{$key}[2])."</td>";
                        }else{
                                print "$customgrp{$key}[2]</td>";
                        }
                        if ($ip eq '' && $customgrp{$key}[2] ne $Lang::tr{'fwhost err emptytable'}){
-                               print "<td align='center'>$Lang::tr{'fwhost deleted'}</td><td align='center'>$customgrp{$key}[3]</td><td width='1%'><form method='post'>";   
+                               print "<td align='center' $col>$Lang::tr{'fwhost deleted'}</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
                        }else{
                                my ($colip,$colsub) = split("/",$ip);
                                $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'>";
+                               print"<td align='center' $col ".&getcolor($colip).">".&Header::colorize($ip)."</td><td align='center' $col>$customgrp{$key}[3]</td><td width='1%' $col><form method='post'>";
                        }
                        if ($delflag > 1 && $ip ne ''){
                                print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />";
@@ -1722,25 +1744,33 @@ sub viewtableservice
                &General::readhasharray("$fwconfiginp", \%fwinp);
                &General::readhasharray("$fwconfigout", \%fwout);
                print<<END;
-                       <table width='100%' border='0' cellspacing='0'>
-                       <tr><td align='center'><b>$Lang::tr{'fwhost srv_name'}</b></td><td align='center'><b>$Lang::tr{'fwhost prot'}</b></td><td align='center'><b>$Lang::tr{'fwhost port'}</b></td><td align='center'><b>ICMP</b></td><td align='center'><b>$Lang::tr{'fwhost used'}</b></td><td></td><td width='3%'></td></tr>
+                       <table width='100%' cellspacing='0' class='tbl'>
+                       <tr><th align='center'><b>$Lang::tr{'fwhost srv_name'}</b></th><th align='center'><b>$Lang::tr{'fwhost prot'}</b></th><th align='center'><b>$Lang::tr{'fwhost port'}</b></th><th align='center'><b>ICMP</b></th><th align='center'><b>$Lang::tr{'fwhost used'}</b></th><th></th><th width='3%'></th></tr>
 END
+               my $col='';
                foreach my $key (sort { ncmp($customservice{$a}[0],$customservice{$b}[0])} keys %customservice)
                {
                        $count++;
                        if ( ($fwhostsettings{'updatesrv'} eq 'on' || $fwhostsettings{'error'}) && $fwhostsettings{'SRV_NAME'} eq $customservice{$key}[0]) {
-                               print" <tr bgcolor='${Header::colouryellow}'>";
-                       }elsif ($count % 2){ print" <tr bgcolor='$color{'color22'}'>";}else{    print" <tr bgcolor='$color{'color20'}'>";}
+                               print" <tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
+                       }elsif ($count % 2){
+                               print" <tr>";
+                               $col="bgcolor='$color{'color22'}'";
+                       }else{
+                               print" <tr>";
+                               $col="bgcolor='$color{'color20'}'";
+                       }
                        print<<END;
-                       <td>$customservice{$key}[0]</td><td align='center'>$customservice{$key}[2]</td><td align='center'>$customservice{$key}[1]</td><td align='center'>
+                       <td $col>$customservice{$key}[0]</td><td align='center' $col>$customservice{$key}[2]</td><td align='center' $col>$customservice{$key}[1]</td><td align='center' $col>
 END
                        #Neuer count
                        $srvcount=&getsrvcount($customservice{$key}[0]);
                        if($customservice{$key}[3] eq 'All ICMP-Types'){print $Lang::tr{'fwdfw all icmp'};}
                        elsif($customservice{$key}[3] ne 'BLANK'){print $customservice{$key}[3];}
                        print<<END;
-                       </td><td align='center'>$srvcount x</td>
-                       <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='editservice' />
+                       </td><td align='center' $col>$srvcount x</td>
+                       <td width='1%' $col><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='editservice' />
                        <input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]' />
                        <input type='hidden' name='SRV_PORT' value='$customservice{$key}[1]' />
                        <input type='hidden' name='PROT' value='$customservice{$key}[2]' />
@@ -1748,9 +1778,9 @@ END
 END
                        if ($srvcount eq '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='delservice' /><input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]'></td></tr></form>";
+                               print"<td width='1%' $col><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='delservice' /><input type='hidden' name='SRV_NAME' value='$customservice{$key}[0]'></td></tr></form>";
                        }else{
-                               print"<td></td></tr>";
+                               print"<td $col></td></tr>";
                        }
                }
                print"</table>";
@@ -1767,6 +1797,7 @@ sub viewtableservicegrp
        my $protocol;
        my $delflag;
        my $grpcount=0;
+       my $col='';
        if (! -z $configsrvgrp){
                &Header::openbox('100%', 'left', $Lang::tr{'fwhost cust srvgrp'});
                &General::readhasharray("$configsrvgrp", \%customservicegrp);
@@ -1806,14 +1837,17 @@ sub viewtableservicegrp
                                        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='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='ACTION' value='delservicegrp'></form>";
                                }
                                print"<form method='post' style='display:inline'><input type='image' src='/images/edit.gif' alt=$Lang::tr{'edit'} title=$Lang::tr{'edit'} align='right' /><input type='hidden' name='SRVGRP_NAME' value='$grpname' ><input type='hidden' name='SRVGRP_REMARK' value='$remark' ><input type='hidden' name='ACTION' value='editservicegrp'></form>";
-                               print"<table width='100%' style='border: 1px solid #CCCCCC;' rules='none' cellspacing='0'><tr><td align='center'><b>Name</b></td><td align='center'><b>$Lang::tr{'port'}</b></td><td align='center' width='25%'><b>$Lang::tr{'fwhost prot'}</td><td></td></tr>";
+                               print"<table width='100%' cellspacing='0' class='tbl'><tr><th align='center'><b>Name</b></th><th align='center'><b>$Lang::tr{'port'}</b></th><th align='center' width='25%'><b>$Lang::tr{'fwhost prot'}</th><th></th></tr>";
                        }
                        if( $fwhostsettings{'SRVGRP_NAME'} eq $customservicegrp{$key}[0]) {
-                               print" <tr bgcolor='${Header::colouryellow}'>";
+                               print"<tr>";
+                               $col="bgcolor='${Header::colouryellow}'";
                        }elsif ($count %2 == 0){
-                               print"<tr bgcolor='$color{'color22'}'>";
+                               print"<tr>";
+                               $col="bgcolor='$color{'color20'}'";
                        }else{
-                               print"<tr bgcolor='$color{'color20'}'>";
+                               print"<tr>";
+                               $col="bgcolor='$color{'color22'}'";
                        }
                        #Set fields if we use protocols in servicegroups
                        if ($customservicegrp{$key}[2] ne 'TCP' || $customservicegrp{$key}[2] ne 'UDP' || $customservicegrp{$key}[2] ne 'ICMP'){
@@ -1825,7 +1859,7 @@ sub viewtableservicegrp
                        if ($customservicegrp{$key}[2] eq 'IGMP'){$protocol='IGMP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IGMP";}
                        if ($customservicegrp{$key}[2] eq 'IPIP'){$protocol='IPIP';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPIP";}
                        if ($customservicegrp{$key}[2] eq 'IPV6'){$protocol='IPV6';$customservicegrp{$key}[2]="$Lang::tr{'protocol'} IPv6 encapsulation";}
-                       print "<td width='39%'>$customservicegrp{$key}[2]</td>";
+                       print "<td width='39%' $col>$customservicegrp{$key}[2]</td>";
                        foreach my $srv (sort keys %customservice){
                                if ($customservicegrp{$key}[2] eq $customservice{$srv}[0]){
                                        $protocol=$customservice{$srv}[2];
@@ -1833,7 +1867,7 @@ sub viewtableservicegrp
                                        last;
                                }
                        }
-                       print"<td align='center'>$port</td><td align='center'>$protocol</td><td width='1%'><form method='post'>";
+                       print"<td align='center' $col>$port</td><td align='center' $col>$protocol</td><td width='1%' $col><form method='post'>";
                        if ($delflag gt '1'){
                                print"<input type='image' src='/images/delete.gif' align='middle' alt=$Lang::tr{'delete'} title=$Lang::tr{'delete'} />";
                        }
@@ -1938,6 +1972,33 @@ sub checkservicegroup
        }
        return $errormessage;
 }
+sub checkrulereload
+{
+       my $search=shift;
+       &General::readhasharray("$fwconfigfwd", \%fwfwd);
+       &General::readhasharray("$fwconfiginp", \%fwinp);
+       &General::readhasharray("$fwconfigout", \%fwout);
+
+       #check if service or servicegroup is used in rules
+       foreach my $key (keys %fwfwd){
+               if($search eq $fwfwd{$key}[15]){
+                       &General::firewall_config_changed();
+                       return;
+               }
+       }
+       foreach my $key (keys %fwinp){
+               if($search eq $fwinp{$key}[15]){
+                       &General::firewall_config_changed();
+                       return;
+               }
+       }
+       foreach my $key (keys %fwout){
+               if($search eq $fwout{$key}[15]){
+                       &General::firewall_config_changed();
+                       return;
+               }
+       }
+}
 sub error
 {
        if ($errormessage) {