summaryrefslogtreecommitdiffstats
path: root/textw/firewall_text.py
diff options
context:
space:
mode:
authorbfox <bfox>2001-01-23 22:53:18 +0000
committerbfox <bfox>2001-01-23 22:53:18 +0000
commit7d2c8d3771334baaf95b20015c1da38dc20f385d (patch)
tree07b15fcb1aff7dec1a488346ab9c367132d36d84 /textw/firewall_text.py
parent2ff9d258ad04c8f64d0c3348515ba65f0e531053 (diff)
downloadanaconda-7d2c8d3771334baaf95b20015c1da38dc20f385d.tar.gz
anaconda-7d2c8d3771334baaf95b20015c1da38dc20f385d.tar.xz
anaconda-7d2c8d3771334baaf95b20015c1da38dc20f385d.zip
Added some sanity checking code for the port list.
Diffstat (limited to 'textw/firewall_text.py')
-rw-r--r--textw/firewall_text.py42
1 files changed, 41 insertions, 1 deletions
diff --git a/textw/firewall_text.py b/textw/firewall_text.py
index 773f6acf8..943b8c68d 100644
--- a/textw/firewall_text.py
+++ b/textw/firewall_text.py
@@ -148,7 +148,7 @@ class FirewallWindow:
for device in self.netCBs.keys():
if self.netCBs[device].selected():
todo.firewall.trustdevs.append(device)
- todo.firewall.portlist = self.other.value()
+# todo.firewall.portlist = self.other.value()
todo.firewall.dhcp = self.dhcp.selected()
todo.firewall.ssh = self.ssh.selected()
todo.firewall.telnet = self.telnet.selected()
@@ -163,6 +163,46 @@ class FirewallWindow:
todo.firewall.policy = 0
else:
todo.firewall.policy = 1
+
+ #- Do some sanity checking on port list
+ portstring = string.strip(self.other.value())
+ portlist = ""
+ bad_token_found = 0
+ bad_token = ""
+ if portstring != "":
+ tokens = string.split(portstring, ',')
+ for token in tokens:
+ try:
+ if string.index(token,':'): #- if there's a colon in the token, it's valid
+ parts = string.split(token, ':')
+ if len(parts) > 2: #- We've found more than one colon. Break loop and raise an error.
+ bad_token_found = 1
+ bad_token = token
+ else:
+ if parts[1] == 'tcp' or parts[1] == 'udp': #-upd and tcp are the only valid protocols
+ if portlist == "":
+ portlist = token
+ else:
+ portlist = portlist + ',' + token
+ else: #- Found a protocol other than tcp or udp. Break loop
+ bad_token_found = 1
+ bad_token = token
+ pass
+ except:
+ if token != "":
+ if portlist == "":
+ portlist = token + ":tcp"
+ else:
+ portlist = portlist + ',' + token + ':tcp'
+ else:
+ pass
+ todo.firewall.portlist = portlist
+
+# print todo.firewall.portlist
+# import time
+# time.sleep(3)
+
+
return INSTALL_OK
def radiocb(self, args):