[LON-CAPA-cvs] cvs: loncom /init.d loncontrol

matthew lon-capa-cvs@mail.lon-capa.org
Thu, 02 Dec 2004 21:16:56 -0000


matthew		Thu Dec  2 16:16:56 2004 EDT

  Modified files:              
    /loncom/init.d	loncontrol 
  Log:
  Added support for multiple port opening and added port 8080.
  
  
Index: loncom/init.d/loncontrol
diff -u loncom/init.d/loncontrol:1.21 loncom/init.d/loncontrol:1.22
--- loncom/init.d/loncontrol:1.21	Thu Dec  2 15:49:50 2004
+++ loncom/init.d/loncontrol	Thu Dec  2 16:16:56 2004
@@ -45,29 +45,34 @@
     # Firewall code is based on the code in FC2 /etc/init.d/ntpd
     my $fw_chain = 'RH-Firewall-1-INPUT';
     my $iptables = '/sbin/iptables';
-    my $port = 5663;
+    my $lond_port = 5663;
+    my $lonhttpd_port = 8080;
 
 sub firewall_open_port {
     return if (! &firewall_is_active);
-    print "Opening firewall access on port $port\n";
     if (! `$iptables -L -n 2>/dev/null | grep $fw_chain | wc -l`) { return; }
     # iptables is running with our chain
     #
     # We could restrict the servers allowed to attempt to communicate
     # here, but the logistics of updating the /home/httpd/lonTabs/host.tab
     # file are likely to be a problem
-    my $firewall_command = 
-        "$iptables -I $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT";
-    system($firewall_command);
-    my $return_status = $?>>8;
-    if ($return_status == 1) {
-        # Error
-        print "Error opening port.\n";
-    } elsif ($return_status == 2) {
-        # Bad command
-        print "Bad command error opening port.  Command was\n".
-            "  ".$firewall_command."\n";
+    foreach my $port ($lond_port,$lonhttpd_port) {
+        print "Opening firewall access on port $port.\n";
+
+        my $firewall_command = 
+            "$iptables -I $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT";
+        system($firewall_command);
+        my $return_status = $?>>8;
+        if ($return_status == 1) {
+            # Error
+            print "Error opening port.\n";
+        } elsif ($return_status == 2) {
+            # Bad command
+            print "Bad command error opening port.  Command was\n".
+                "  ".$firewall_command."\n";
+        }
     }
+    
 }
 
 sub firewall_is_port_open {
@@ -92,18 +97,20 @@
 
 sub firewall_close_port {
     return if (! &firewall_is_active);
-    print "Closing firewall access on port $port\n";
-    my $firewall_command = 
-        "$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT";
-    system($firewall_command);
-    my $return_status = $?>>8;
-    if ($return_status == 1) {
-        # Error
-        print "Error closing port.\n";
-    } elsif ($return_status == 2) {
-        # Bad command
-        print "Bad command error closing port.  Command was\n".
-            "  ".$firewall_command."\n";
+    foreach my $port ($lond_port,$lonhttpd_port) {
+        print "Closing firewall access on port $port.\n";
+        my $firewall_command = 
+            "$iptables -D $fw_chain -p tcp -d 0/0 --dport $port -j ACCEPT";
+        system($firewall_command);
+        my $return_status = $?>>8;
+        if ($return_status == 1) {
+            # Error
+            print "Error closing port.\n";
+        } elsif ($return_status == 2) {
+            # Bad command
+            print "Bad command error closing port.  Command was\n".
+                "  ".$firewall_command."\n";
+        }
     }
 }