Fix for the daemon code and for hv_set_ifconfig.sh script, so
that the created ifcfg-* file is consistent with initscripts
documentation.

Signed-off-by: Tomas Hozza <tho...@redhat.com>
---
 tools/hv/hv_kvp_daemon.c    | 59 ++++++++++++++++++++++-----------------------
 tools/hv/hv_set_ifconfig.sh | 22 +++++++----------
 2 files changed, 38 insertions(+), 43 deletions(-)

diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c
index d25a469..e6fe8d5 100644
--- a/tools/hv/hv_kvp_daemon.c
+++ b/tools/hv/hv_kvp_daemon.c
@@ -1162,16 +1162,13 @@ static int process_ip_string(FILE *f, char *ip_string, 
int type)
                                snprintf(str, sizeof(str), "%s", "DNS");
                                break;
                        }
-                       if (i != 0) {
-                               if (type != DNS) {
-                                       snprintf(sub_str, sizeof(sub_str),
-                                               "_%d", i++);
-                               } else {
-                                       snprintf(sub_str, sizeof(sub_str),
-                                               "%d", ++i);
-                               }
-                       } else if (type == DNS) {
+
+                       if (type == DNS) {
                                snprintf(sub_str, sizeof(sub_str), "%d", ++i);
+                       } else if (type == GATEWAY && i == 0) {
+                               ++i;
+                       } else {
+                               snprintf(sub_str, sizeof(sub_str), "%d", i++);
                        }
 
 
@@ -1191,17 +1188,13 @@ static int process_ip_string(FILE *f, char *ip_string, 
int type)
                                snprintf(str, sizeof(str), "%s",  "DNS");
                                break;
                        }
-                       if ((j != 0) || (type == DNS)) {
-                               if (type != DNS) {
-                                       snprintf(sub_str, sizeof(sub_str),
-                                               "_%d", j++);
-                               } else {
-                                       snprintf(sub_str, sizeof(sub_str),
-                                               "%d", ++i);
-                               }
-                       } else if (type == DNS) {
-                               snprintf(sub_str, sizeof(sub_str),
-                                       "%d", ++i);
+
+                       if (type == DNS) {
+                               snprintf(sub_str, sizeof(sub_str), "%d", ++i);
+                       } else if (j == 0) {
+                               ++j;
+                       } else {
+                               snprintf(sub_str, sizeof(sub_str), "_%d", j++);
                        }
                } else {
                        return  HV_INVALIDARG;
@@ -1244,18 +1237,19 @@ static int kvp_set_ip_info(char *if_name, struct 
hv_kvp_ipaddr_value *new_val)
         * Here is the format of the ip configuration file:
         *
         * HWADDR=macaddr
-        * IF_NAME=interface name
-        * DHCP=yes (This is optional; if yes, DHCP is configured)
+        * DEVICE=interface name
+        * BOOTPROTO=<protocol> (where <protocol> is "dhcp" if DHCP is 
configured
+        *                       or "none" if no boot-time protocol should be 
used)
         *
-        * IPADDR=ipaddr1
-        * IPADDR_1=ipaddr2
-        * IPADDR_x=ipaddry (where y = x + 1)
+        * IPADDR0=ipaddr1
+        * IPADDR1=ipaddr2
+        * IPADDRx=ipaddry (where y = x + 1)
         *
-        * NETMASK=netmask1
-        * NETMASK_x=netmasky (where y = x + 1)
+        * NETMASK0=netmask1
+        * NETMASKx=netmasky (where y = x + 1)
         *
         * GATEWAY=ipaddr1
-        * GATEWAY_x=ipaddry (where y = x + 1)
+        * GATEWAYx=ipaddry (where y = x + 1)
         *
         * DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
         *
@@ -1294,12 +1288,12 @@ static int kvp_set_ip_info(char *if_name, struct 
hv_kvp_ipaddr_value *new_val)
        if (error)
                goto setval_error;
 
-       error = kvp_write_file(file, "IF_NAME", "", if_name);
+       error = kvp_write_file(file, "DEVICE", "", if_name);
        if (error)
                goto setval_error;
 
        if (new_val->dhcp_enabled) {
-               error = kvp_write_file(file, "DHCP", "", "yes");
+               error = kvp_write_file(file, "BOOTPROTO", "", "dhcp");
                if (error)
                        goto setval_error;
 
@@ -1307,6 +1301,11 @@ static int kvp_set_ip_info(char *if_name, struct 
hv_kvp_ipaddr_value *new_val)
                 * We are done!.
                 */
                goto setval_done;
+
+       } else {
+               error = kvp_write_file(file, "BOOTPROTO", "", "none");
+               if (error)
+                       goto setval_error;
        }
 
        /*
diff --git a/tools/hv/hv_set_ifconfig.sh b/tools/hv/hv_set_ifconfig.sh
index 3e9427e..00b66be 100755
--- a/tools/hv/hv_set_ifconfig.sh
+++ b/tools/hv/hv_set_ifconfig.sh
@@ -20,18 +20,19 @@
 # Here is the format of the ip configuration file:
 #
 # HWADDR=macaddr
-# IF_NAME=interface name
-# DHCP=yes (This is optional; if yes, DHCP is configured)
+# DEVICE=interface name
+# BOOTPROTO=<protocol> (where <protocol> is "dhcp" if DHCP is configured
+#                       or "none" if no boot-time protocol should be used)
 #
-# IPADDR=ipaddr1
-# IPADDR_1=ipaddr2
-# IPADDR_x=ipaddry (where y = x + 1)
+# IPADDR0=ipaddr1
+# IPADDR1=ipaddr2
+# IPADDRx=ipaddry (where y = x + 1)
 #
-# NETMASK=netmask1
-# NETMASK_x=netmasky (where y = x + 1)
+# NETMASK0=netmask1
+# NETMASKx=netmasky (where y = x + 1)
 #
 # GATEWAY=ipaddr1
-# GATEWAY_x=ipaddry (where y = x + 1)
+# GATEWAYx=ipaddry (where y = x + 1)
 #
 # DNSx=ipaddrx (where first DNS address is tagged as DNS1 etc)
 #
@@ -53,11 +54,6 @@ echo "NM_CONTROLLED=no" >> $1
 echo "PEERDNS=yes" >> $1
 echo "ONBOOT=yes" >> $1
 
-dhcp=$(grep "DHCP" $1 2>/dev/null)
-if [ "$dhcp" != "" ];
-then
-echo "BOOTPROTO=dhcp" >> $1;
-fi
 
 cp $1 /etc/sysconfig/network-scripts/
 
-- 
1.7.11.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to