diff options
author | David Cantrell <dcantrell@redhat.com> | 2007-09-12 21:20:43 +0000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2007-09-12 21:20:43 +0000 |
commit | 6a7bfde9c209fb11c2777aefa33e98fce9a1d694 (patch) | |
tree | ba683e26c9e0fe7fb2682f05f26c966c32b267af | |
parent | 3371730c1192755bc3e0940ef9252706c3f9c5c3 (diff) | |
download | anaconda-6a7bfde9c209fb11c2777aefa33e98fce9a1d694.tar.gz anaconda-6a7bfde9c209fb11c2777aefa33e98fce9a1d694.tar.xz anaconda-6a7bfde9c209fb11c2777aefa33e98fce9a1d694.zip |
* network.py (hasActiveNetDev): Return True when isys.getLinkStatus
is True for dev (#235824).
* isys/nl.c (netlink_interfaces_ip2str): Reset interfaces cache before
looking up interface (#235824).
* isys/nl.c (netlink_interfaces_mac2str): Likewise.
* iw/netconfig_dialog.py: Do not require a gateway or nameserver.
Allow users to enter a CIDR prefix or network (#235824).
-rw-r--r-- | ChangeLog | 12 | ||||
-rw-r--r-- | isys/nl.c | 19 | ||||
-rw-r--r-- | iw/netconfig_dialog.py | 58 | ||||
-rw-r--r-- | network.py | 3 |
4 files changed, 59 insertions, 33 deletions
@@ -1,5 +1,17 @@ 2007-09-12 David Cantrell <dcantrell@redhat.com> + * network.py (hasActiveNetDev): Return True when isys.getLinkStatus + is True for dev (#235824). + + * isys/nl.c (netlink_interfaces_ip2str): Reset interfaces cache before + looking up interface (#235824). + * isys/nl.c (netlink_interfaces_mac2str): Likewise. + + * iw/netconfig_dialog.py: Do not require a gateway or nameserver. + Allow users to enter a CIDR prefix or network (#235824). + +2007-09-12 David Cantrell <dcantrell@redhat.com> + * anaconda.spec: Bump version. 2007-09-12 David Cantrell <dcantrell@redhat.com> @@ -434,13 +434,9 @@ char *netlink_interfaces_ip2str(char *ifname) { if (ifname == NULL) return NULL; - /* init the interfaces list if it's empty or if nothing is found */ - e = g_slist_find_custom(interfaces,ifname,&_netlink_interfaces_elem_find); - if (interfaces == NULL || e == NULL) { - if (netlink_init_interfaces_list() == -1) { - perror("netlink_init_interfaces_list in netlink_interface_ip2str"); - return NULL; - } + if (netlink_init_interfaces_list() == -1) { + perror("netlink_init_interfaces_list in netlink_interface_ip2str"); + return NULL; } /* search */ @@ -483,12 +479,9 @@ char *netlink_interfaces_mac2str(char *ifname) { if (ifname == NULL) return NULL; - /* init the interfaces list if it's empty */ - if (interfaces == NULL) { - if (netlink_init_interfaces_list() == -1) { - perror("netlink_init_interfaces_list in netlink_interface_mac2str"); - return NULL; - } + if (netlink_init_interfaces_list() == -1) { + perror("netlink_init_interfaces_list in netlink_interface_mac2str"); + return NULL; } e = g_slist_find_custom(interfaces,ifname,&_netlink_interfaces_elem_find); diff --git a/iw/netconfig_dialog.py b/iw/netconfig_dialog.py index b2c2897b6..7c029e620 100644 --- a/iw/netconfig_dialog.py +++ b/iw/netconfig_dialog.py @@ -121,7 +121,7 @@ class NetworkConfigurator: store[i] = (desc, dev) if dev == self.network.firstnetdevice: combo.set_active_iter(i) - + def run(self): gui.addFrame(self.window) self.window.show() @@ -172,35 +172,58 @@ class NetworkConfigurator: try: network.sanityCheckIPString(ipv4addr) - except network.IPError, msg: - self._handleIPError(_("IP Address"), msg) + except network.IPMissing, msg: + self._handleIPMissing(_("IP Address")) return - - try: - network.sanityCheckIPString(ipv4nm) except network.IPError, msg: - self._handleIPError(_("Netmask"), msg) + self._handleIPError(_("IP Address"), msg) return - if gateway: + if ipv4nm.find('.') == -1: + # user provided a CIDR prefix try: - network.sanityCheckIPString(gateway) - except network.IPError, msg: - self._handleIPError(_("Gateway"), msg) + if int(ipv4nm) > 32 or int(ipv4nm) < 0: + msg = _("IPv4 CIDR prefix must be between 0 and 32.") + self._handleIPError(_("IPv4 Network Mask"), msg) + return + else: + ipv4nm = isys.prefix2netmask(int(ipv4nm)) + netdev.set(('netmask', ipv4nm)) + except: + self._handleIPMissing(_("IPv4 Network Mask")) return - - if ns: + else: + # user provided a dotted-quad netmask try: - network.sanityCheckIPString(ns) + network.sanityCheckIPString(ipv4nm) + netdev.set(('netmask', ipv4nm)) + except network.IPMissing, msg: + self._handleIPMissing(_("IPv4 Network Mask")) + return except network.IPError, msg: - self._handleIPError(_("Nameserver"), msg) + self._handleIPError(_("IPv4 Network Mask"), msg) return try: + if gateway: + network.sanityCheckIPString(gateway) + except network.IPError, msg: + self._handleIPError(_("Gateway"), msg) + return + + try: + if ns: + network.sanityCheckIPString(ns) + except network.IPError, msg: + self._handleIPError(_("Nameserver"), msg) + return + + try: isys.configNetDevice(netdev.get("device"), ipv4addr, ipv4nm, gateway) except Exception, e: log.error("Error configuring network device: %s" %(e,)) + self.rc = gtk.RESPONSE_OK if ns: f = open("/etc/resolv.conf", "w") @@ -214,16 +237,13 @@ class NetworkConfigurator: _("Error configuring network device"), type = "ok", custom_icon="error") return - - gtk.main_quit() - + gtk.main_quit() def main(): net = network.Network() d = NetworkConfigurator(net) ret = d.run() - if __name__ == "__main__": main() diff --git a/network.py b/network.py index bfafb7635..434ad2165 100644 --- a/network.py +++ b/network.py @@ -114,7 +114,8 @@ def hasActiveNetDev(): continue if ip == '127.0.0.1' or ip is None: continue - return True + if isys.getLinkStatus(dev): + return True return False class NetworkDevice(SimpleConfigFile): |