summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--iw/network_gui.py4
-rw-r--r--kickstart.py10
-rw-r--r--loader2/net.c13
-rw-r--r--network.py2
-rw-r--r--textw/network_text.py4
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')