diff options
-rw-r--r-- | iw/network_gui.py | 4 | ||||
-rw-r--r-- | kickstart.py | 10 | ||||
-rw-r--r-- | loader2/net.c | 13 | ||||
-rw-r--r-- | network.py | 2 | ||||
-rw-r--r-- | textw/network_text.py | 4 |
5 files changed, 22 insertions, 11 deletions
diff --git a/iw/network_gui.py b/iw/network_gui.py index 2a4c89303..34f799cc4 100644 --- a/iw/network_gui.py +++ b/iw/network_gui.py @@ -341,7 +341,7 @@ class NetworkWindow(InstallWindow): for device in self.devices.keys(): bootproto = self.devices[device].get("bootproto") - if bootproto and bootproto.lower() == 'dhcp': + if bootproto and bootproto.lower() in ['ask', 'dhcp']: onboot = self.devices[device].get("ONBOOT") if onboot != "no": return 1 @@ -383,7 +383,7 @@ class NetworkWindow(InstallWindow): active = False bootproto = self.devices[device].get("bootproto") - if not bootproto: + if not bootproto or bootproto == "ask": bootproto = 'dhcp' self.devices[device].set(("bootproto", bootproto)) diff --git a/kickstart.py b/kickstart.py index 6b5068355..e5e613129 100644 --- a/kickstart.py +++ b/kickstart.py @@ -334,9 +334,9 @@ class Monitor(commands.monitor.FC6_Monitor): self.handler.id.instClass.setMonitor(self.handler.id, self.hsync, self.vsync, self.monitor) -class Network(commands.network.F8_Network): +class Network(commands.network.F9_Network): def parse(self, args): - commands.network.F8_Network.parse(self, args) + commands.network.F9_Network.parse(self, args) nd = self.network[-1] @@ -1063,7 +1063,11 @@ def setSteps(anaconda): dispatch.skipStep("regkey") dispatch.skipStep("installtype") dispatch.skipStep("tasksel") - dispatch.skipStep("network") + + # Only skip the network screen if there are no devices that used + # network --bootproto=ask. + if len(filter(lambda nd: nd.bootproto == BOOTPROTO_ASK, ksdata.network.network)) == 0: + dispatch.skipStep("network") # Don't show confirmation screens on non-interactive installs. if not interactive: diff --git a/loader2/net.c b/loader2/net.c index 2afcb8adb..66a7e1e69 100644 --- a/loader2/net.c +++ b/loader2/net.c @@ -1645,7 +1645,10 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc, /* if they've specified dhcp/bootp or haven't specified anything, * use dhcp for the interface */ - if ((bootProto && (!strncmp(bootProto, "dhcp", 4) || + if (bootProto && !strncmp(bootProto, "ask", 3)) { + loaderData->ipv4 = strdup("ask"); + loaderData->ipinfo_set = 0; + } else if ((bootProto && (!strncmp(bootProto, "dhcp", 4) || !strncmp(bootProto, "bootp", 4))) || (!bootProto && !loaderData->ipv4)) { loaderData->ipv4 = strdup("dhcp"); @@ -1657,7 +1660,8 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc, /* now make sure the specified bootproto is valid */ if (bootProto && strcmp(bootProto, "dhcp") && strcmp(bootProto, "bootp") && - strcmp(bootProto, "static") && strcmp(bootProto, "query")) { + strcmp(bootProto, "static") && strcmp(bootProto, "query") && + strcmp(bootProto, "ask")) { newtWinMessage(_("Kickstart Error"), _("OK"), _("Bad bootproto %s specified in network command"), bootProto); @@ -1914,7 +1918,10 @@ int kickstartNetworkUp(struct loaderData_s * loaderData, if (!loaderData->ipv4) { loaderData->ipv4 = strdup("dhcp"); } - loaderData->ipinfo_set = 1; + + if (strncmp(loaderData->ipv4, "ask", 3)) { + loaderData->ipinfo_set = 1; + } setupNetworkDeviceConfig(netCfgPtr, loaderData); diff --git a/network.py b/network.py index 593d42cfe..569e8ba96 100644 --- a/network.py +++ b/network.py @@ -83,7 +83,7 @@ def isPtpDev(devname): def anyUsingDHCP(devices): for dev in devices.keys(): bootproto = devices[dev].get("bootproto") - if bootproto and bootproto.lower() == "dhcp": + if bootproto and bootproto.lower() in ["ask", "dhcp"]: onboot = devices[dev].get("onboot") if onboot and onboot != "no": return 1 diff --git a/textw/network_text.py b/textw/network_text.py index a1660aa75..797d71cf2 100644 --- a/textw/network_text.py +++ b/textw/network_text.py @@ -270,7 +270,7 @@ class NetworkDeviceWindow: maingrid = Grid(1, 3) dhcpCb = radio.add(_("Dynamic IP configuration (DHCP)"), - "dhcp", (bootproto == "dhcp")) + "dhcp", (bootproto in ["ask", "dhcp"])) maingrid.setField(dhcpCb, 0, 0, growx = 1, anchorLeft = 1) manualCb = radio.add(_("Manual address configuration"), "static", (bootproto == "static")) @@ -626,7 +626,7 @@ class NetworkDeviceWindow: else: onboot = _("Inactive on boot") - if dev.get('bootproto').lower() == 'dhcp': + if dev.get('bootproto').lower() in ['ask', 'dhcp']: ipv4 = _("DHCP") else: ipv4 = dev.get('ipaddr') |