]> git.proxmox.com Git - mirror_kronosnet.git/commitdiff
kronosnetd: fix parsing of ip_list return from libtap
authorFabio M. Di Nitto <fdinitto@redhat.com>
Tue, 13 Nov 2012 05:32:20 +0000 (06:32 +0100)
committerFabio M. Di Nitto <fdinitto@redhat.com>
Tue, 13 Nov 2012 05:32:20 +0000 (06:32 +0100)
Signed-off-by: Fabio M. Di Nitto <fdinitto@redhat.com>
TODO
kronosnetd/vty_cli_cmds.c

diff --git a/TODO b/TODO
index ad2b05d547946eecbbbf5cf96ad641de34915270..510ea827f44b63948fcb6abb41d512ca8cbea79c 100644 (file)
--- a/TODO
+++ b/TODO
@@ -13,8 +13,6 @@ compress must happen before encrypt
 
 fix libtap init when creating a new interface live (flags issues in libtap)
 
-fix config save (ip... with more than one interface, see orazio)
-
 consider adding dhcp support for tap device
 
 need bind to interface for dynamic ip local interfaces vs src ip address or
index c4d94d148778effe0c22b0108d27b6f0c0840081..23d31fec2a5c5a595d1cb3f68705ff76683c9dc0 100644 (file)
@@ -1743,7 +1743,7 @@ static int knet_cmd_print_conf(struct knet_vty *vty)
        struct knet_host *host = NULL;
        const char *nl = telnet_newline;
        char *ip_list = NULL;
-       int ip_list_entries = 0, offset = 0;
+       int ip_list_entries = 0;
 
        if (vty->filemode)
                nl = file_newline;
@@ -1763,10 +1763,12 @@ static int knet_cmd_print_conf(struct knet_vty *vty)
 
                tap_get_ips(knet_iface->cfg_eth.tap, &ip_list, &ip_list_entries);
                if ((ip_list) && (ip_list_entries > 0)) {
+                       char *ipaddr = NULL, *prefix = NULL, *next = ip_list;
                        for (i = 1; i <= ip_list_entries; i++) {
-                               knet_vty_write(vty, "  ip %s %s%s", ip_list + offset, ip_list + offset + strlen(ip_list + offset) + 1, nl);
-                               offset = offset + strlen(ip_list) + 1;
-                               offset = offset + strlen(ip_list + offset) + 1;
+                               ipaddr = next;
+                               prefix = ipaddr + strlen(ipaddr) + 1;
+                               next = prefix + strlen(prefix) + 1;
+                               knet_vty_write(vty, "  ip %s %s%s", ipaddr, prefix, nl);
                        }
                        free(ip_list);
                        ip_list = NULL;