From 7d5fa885d30d8e4f6f3c0ba99ec9a9e122d3f3f7 Mon Sep 17 00:00:00 2001
From: tbrehm <t.brehm@ispconfig.org>
Date: Wed, 08 Jul 2009 09:45:57 -0400
Subject: [PATCH] Fixed: FS#748 - ispconfig vs firewall port range

---
 server/plugins-available/firewall_plugin.inc.php |   18 ++++++++++++++----
 1 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/server/plugins-available/firewall_plugin.inc.php b/server/plugins-available/firewall_plugin.inc.php
index e46d0ca..c446852 100644
--- a/server/plugins-available/firewall_plugin.inc.php
+++ b/server/plugins-available/firewall_plugin.inc.php
@@ -79,8 +79,13 @@
 		$ports = explode(',',$data["new"]["tcp_port"]);
 		if(is_array($ports)) {
 			foreach($ports as $p) {
-				$p_int = intval($p);
-				if($p_int > 0) $tcp_ports .= $p_int . ' ';
+				if(strstr($p,':')) {
+					$p_parts = explode(':',$p);
+					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
+				} else {
+					$p_clean = intval($p);
+				}
+				if($p_int > 0) $tcp_ports .= $p_clean . ' ';
 			}
 		}
 		$tcp_ports = trim($tcp_ports);
@@ -88,8 +93,13 @@
 		$ports = explode(',',$data["new"]["udp_port"]);
 		if(is_array($ports)) {
 			foreach($ports as $p) {
-				$p_int = intval($p);
-				if($p_int > 0) $udp_ports .= $p_int . ' ';
+				if(strstr($p,':')) {
+					$p_parts = explode(':',$p);
+					$p_clean = intval($p_parts[0]).':'.intval($p_parts[1]);
+				} else {
+					$p_clean = intval($p);
+				}
+				if($p_int > 0) $udp_ports .= $p_clean . ' ';
 			}
 		}
 		$udp_ports = trim($udp_ports);

--
Gitblit v1.9.1