summaryrefslogtreecommitdiffstats
path: root/iw
diff options
context:
space:
mode:
Diffstat (limited to 'iw')
-rw-r--r--iw/firewall_gui.py130
1 files changed, 17 insertions, 113 deletions
diff --git a/iw/firewall_gui.py b/iw/firewall_gui.py
index eac18007f..ada47240f 100644
--- a/iw/firewall_gui.py
+++ b/iw/firewall_gui.py
@@ -1,7 +1,7 @@
#
# firewall_gui.py: firewall setup screen
#
-# Copyright 2001-2003 Red Hat, Inc.
+# Copyright 2001-2004 Red Hat, Inc.
#
# This software may be freely redistributed under the terms of the GNU
# library public license.
@@ -49,86 +49,11 @@ class FirewallWindow (InstallWindow):
self.firewall.enabled = 1
count = 0
- for service in self.knownPorts.keys():
+ for service in self.firewall.services:
val = self.incoming.get_active(count)
- if service == "SSH":
- self.firewall.ssh = val
- elif service == "Telnet":
- self.firewall.telnet = val
- elif service == "WWW (HTTP)":
- self.firewall.http = val
- elif service == "Mail (SMTP)":
- self.firewall.smtp = val
- elif service == "FTP":
- self.firewall.ftp = val
+ service.set_enabled(val)
count = count + 1
- portstring = string.strip(self.ports.get_text())
- portlist = ""
- bad_token_found = 0
- bad_token = ""
- if portstring != "":
- tokens = string.split(portstring, ',')
- for token in tokens:
- try:
- #- if there's a colon in the token, it's valid
- if string.index(token,':'):
- parts = string.split(token, ':')
- try:
- portnum = string.atoi(parts[0])
- except:
- portnum = None
-
- if len(parts) > 2: # more than one colon
- bad_token_found = 1
- bad_token = token
- elif portnum is not None and (portnum < 1 or portnum > 65535):
- bad_token_found = 1
- bad_token = token
- else:
- # udp and tcp are the only valid protos
- if parts[1] == 'tcp' or parts[1] == 'udp':
- if portlist == "":
- portlist = token
- else:
- portlist = portlist + ',' + token
- else: # found protocol !tcp && !udp
- bad_token_found = 1
- bad_token = token
- pass
- except:
- if token != "":
- try:
- try:
- portnum = string.atoi(token)
- except:
- portnum = None
-
- if portnum is not None and (portnum < 1 or portnum > 65535):
- bad_token_found = 1
- bad_token = token
- else:
- if portlist == "":
- portlist = token + ":tcp"
- else:
- portlist = portlist + ',' + token + ':tcp'
- except:
- bad_token_found = 1
- bad_token = token
- else:
- pass
-
- if bad_token_found == 1: # raise a warning
- text = _("Invalid port given: %s. The proper format is "
- "'port:protocol', where port is between 1 and 65535, and protocol is either 'tcp' or 'udp'.\n\nFor example, "
- "'1234:udp'") % (bad_token,)
-
- self.intf.messageWindow(_("Warning: Bad Token"),
- text, type="warning")
- raise gui.StayOnScreen
- else: # all the port data looks good
- self.firewall.portlist = portlist
-
def activate_firewall (self, widget):
if self.disabled_radio.get_active ():
self.table.set_sensitive(gtk.FALSE)
@@ -149,7 +74,10 @@ class FirewallWindow (InstallWindow):
box = gtk.VBox (gtk.FALSE, 5)
box.set_border_width (5)
- label = gui.WrappingLabel (_("A firewall can help prevent unauthorized access to your computer from the outside world. Would you like to enable a firewall?"))
+ label = gui.WrappingLabel (_("A firewall can help prevent "
+ "unauthorized access to your computer "
+ "from the outside world. Would you like "
+ "to enable a firewall?"))
label.set_alignment (0.0, 0)
label.set_size_request(450, -1)
@@ -176,19 +104,18 @@ class FirewallWindow (InstallWindow):
box.pack_start (self.table, gtk.FALSE, 5)
y = 0
- label = gtk.Label (_("Allow others on the internet to access "
- "these services."))
- label.set_size_request(450, -1)
+ label = gui.WrappingLabel (_("With a firewall, you may wish to "
+ "allow access to specific services on "
+ "your computer from others. "
+ "Allow access to which services?"))
+ label.set_size_request(400, -1)
label.set_alignment(0.0, 0.0)
self.table.attach(label, 0, 2, y, y + 1, gtk.EXPAND | gtk.FILL, gtk.FILL, 5, 5)
y = y + 1
hbox = gtk.HBox(gtk.FALSE, 10)
- self.label2 = gui.MnemonicLabel (_("_Allow incoming:"))
- self.label2.set_alignment (0.2, 0.0)
self.incoming = checklist.CheckList(1)
self.incoming.set_size_request(-1, 125)
- self.label2.set_mnemonic_widget(self.incoming)
incomingSW = gtk.ScrolledWindow()
incomingSW.set_border_width(5)
@@ -196,43 +123,19 @@ class FirewallWindow (InstallWindow):
incomingSW.set_shadow_type(gtk.SHADOW_IN)
incomingSW.add(self.incoming)
-# self.table.attach (self.label2, 0, 1, y, y + 1, gtk.FILL, gtk.FILL, 5, 5)
- self.table.attach (incomingSW, 0, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 5, 5)
-
- self.knownPorts = {"SSH": (self.firewall.ssh,
- N_("Remote Login (SSH)")),
- "WWW (HTTP)": (self.firewall.http,
- N_("Web Server")),
- "Mail (SMTP)": (self.firewall.smtp,
- N_("Mail Server (SMTP)")),
- "FTP": (self.firewall.ftp,
- N_("File Transfer (FTP)"))}
-
- for (key, (val, disp)) in self.knownPorts.items():
- self.incoming.append_row ((disp, key), val)
+ for serv in self.firewall.services:
+ self.incoming.append_row ( (_(serv.get_name()), serv),
+ serv.get_enabled() )
- y = y + 1
- self.label3 = gui.MnemonicLabel (_("Other _ports:"))
- self.ports = gtk.Entry ()
- self.label3.set_mnemonic_widget(self.ports)
-
- self.table.attach (self.label3, 0, 1, y, y + 1, gtk.FILL, gtk.FILL, 5, 5)
- self.table.attach (self.ports, 1, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 10, 5)
-
- y = y + 1
+ self.table.attach (incomingSW, 0, 2, y, y + 1, gtk.EXPAND|gtk.FILL, gtk.FILL, 5, 5)
if self.firewall.enabled == 0:
self.disabled_radio.set_active (gtk.TRUE)
else:
self.enabled_radio.set_active(gtk.TRUE)
- if self.firewall.portlist != "":
- self.ports.set_text (self.firewall.portlist)
-
self.activate_firewall(None)
- box.pack_start (gtk.HSeparator(), gtk.FALSE)
-
label = gtk.Label(_("_Security Enhanced Linux (SELinux) Extensions:"))
label.set_use_underline(gtk.TRUE)
self.se_option_menu = gtk.OptionMenu()
@@ -255,6 +158,7 @@ class FirewallWindow (InstallWindow):
hbox.set_sensitive(gtk.FALSE)
if (SELINUX_DEFAULT == 1) or flags.selinux:
+ box.pack_start (gtk.HSeparator(), gtk.FALSE)
box.pack_start(hbox, gtk.FALSE)
return box