[PATCH rhel6-branch] Add kickstart network --ipv6gateway option (#905227)

Radek Vykydal rvykydal at redhat.com
Tue Jun 25 15:26:22 UTC 2013


Resolves: rhbz#905227
---
 anaconda.spec.in |  2 +-
 kickstart.py     |  3 +++
 loader/net.c     | 17 +++++++++++++++++
 network.py       |  2 +-
 4 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/anaconda.spec.in b/anaconda.spec.in
index b3a68c0..a3bd496 100644
--- a/anaconda.spec.in
+++ b/anaconda.spec.in
@@ -27,7 +27,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 %define intltoolver 0.31.2-3
 %define libnlver 1.0
 %define libselinuxver 1.6
-%define pykickstartver 1.74.12
+%define pykickstartver 1.74.13
 %define rpmpythonver 4.2-0.61
 %define slangver 2.0.6-2
 %define yumver 2.9.2
diff --git a/kickstart.py b/kickstart.py
index c227822..b3aa9c8 100644
--- a/kickstart.py
+++ b/kickstart.py
@@ -711,6 +711,9 @@ class NetworkData(commands.network.RHEL6_NetworkData):
         if self.gateway != "":
             anaconda.id.network.setGateway(self.gateway, dev.iface)
 
+        if self.ipv6gateway != "":
+            dev.set(('IPV6_DEFAULTGW', self.ipv6gateway))
+
         if self.nodefroute:
             dev.set (("DEFROUTE", "no"))
 
diff --git a/loader/net.c b/loader/net.c
index 7c6bf01..f188d56 100644
--- a/loader/net.c
+++ b/loader/net.c
@@ -1716,6 +1716,7 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
     struct in_addr addr;
 #ifdef ENABLE_IPV6
     struct in6_addr addr6;
+    gchar *ipv6gateway = NULL;
 #endif
     int rc;
     GOptionEntry ksOptions[] = {
@@ -1727,6 +1728,8 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
         { "ip", 'i', 0, G_OPTION_ARG_STRING, &loaderData->ipv4, NULL, NULL },
 #ifdef ENABLE_IPV6
         { "ipv6", 0, 0, G_OPTION_ARG_STRING, &loaderData->ipv6, NULL, NULL },
+        { "ipv6gateway", 0, 0, G_OPTION_ARG_STRING, &ipv6gateway,
+          NULL, NULL },
 #endif
         { "mtu", 0, 0, G_OPTION_ARG_INT, &mtu, NULL, NULL },
         { "nameserver", 'n', 0, G_OPTION_ARG_STRING, &loaderData->dns,
@@ -1849,6 +1852,20 @@ void setKickstartNetwork(struct loaderData_s * loaderData, int argc,
         }
     }
 
+#ifdef ENABLE_IPV6
+    if (ipv6gateway) {
+        if ((rc = inet_pton(AF_INET6, ipv6gateway, &addr6)) == 1) {
+            loaderData->gateway6 = strdup(ipv6gateway);
+        } else if (rc == 0) {
+            logMessage(WARNING,
+                       "invalid address in kickstart --ipv6gateway");
+        } else {
+             logMessage(ERROR, "%s (%d): %s", __func__, __LINE__,
+                           strerror(errno));
+        }
+    }
+#endif
+
     if (!noksdev) {
         if (device) {
             /* If --device=MAC was given, translate into a device name now. */
diff --git a/network.py b/network.py
index 8bc2d21..523ef6b 100644
--- a/network.py
+++ b/network.py
@@ -542,7 +542,7 @@ class Network:
                     if dev.get('IPV6ADDR'):
                         line += " --ipv6 %s" % dev.get('IPV6ADDR')
                         if dev.get('IPV6_DEFAULTGW'):
-                            line += " --gateway %s" % dev.get('IPV6_DEFAULTGW')
+                            line += " --ipv6gateway %s" % dev.get('IPV6_DEFAULTGW')
                     if dev.get('DHCPV6') == "yes":
                         line += " --ipv6 dhcp"
 
-- 
1.7.11.7



More information about the anaconda-patches mailing list