don't include header length in column width in "show topo"
authorChristophe Varoqui <christophe.varoqui@free.fr>
Sun, 18 May 2008 13:23:30 +0000 (15:23 +0200)
committerChristophe Varoqui <christophe.varoqui@free.fr>
Wed, 21 May 2008 20:01:18 +0000 (22:01 +0200)
which aligns daemon output to "multipath -l" output

libmultipath/print.c
libmultipath/print.h
multipath/main.c
multipathd/cli_handlers.c

index 175c883..0d1e0e9 100644 (file)
@@ -423,14 +423,17 @@ struct pathgroup_data pgd[] = {
 };
 
 void
-get_path_layout (vector pathvec)
+get_path_layout (vector pathvec, int header)
 {
        int i, j;
        char buff[MAX_FIELD_LEN];
        struct path * pp;
 
        for (j = 0; pd[j].header; j++) {
-               pd[j].width = strlen(pd[j].header);
+               if (header)
+                       pd[j].width = strlen(pd[j].header);
+               else
+                       pd[j].width = 0;
 
                vector_foreach_slot (pathvec, pp, i) {
                        pd[j].snprint(buff, MAX_FIELD_LEN, pp);
@@ -440,14 +443,17 @@ get_path_layout (vector pathvec)
 }
 
 void
-get_multipath_layout (vector mpvec)
+get_multipath_layout (vector mpvec, int header)
 {
        int i, j;
        char buff[MAX_FIELD_LEN];
        struct multipath * mpp;
 
        for (j = 0; mpd[j].header; j++) {
-               mpd[j].width = strlen(mpd[j].header);
+               if (header)
+                       mpd[j].width = strlen(mpd[j].header);
+               else
+                       mpd[j].width = 0;
 
                vector_foreach_slot (mpvec, mpp, i) {
                        mpd[j].snprint(buff, MAX_FIELD_LEN, mpp);
@@ -1243,7 +1249,7 @@ print_all_paths_custo (vector pathvec, int banner, char *fmt)
        if (banner)
                fprintf(stdout, "===== paths list =====\n");
 
-       get_path_layout(pathvec);
+       get_path_layout(pathvec, 1);
        snprint_path_header(line, MAX_LINE_LEN, fmt);
        fprintf(stdout, "%s", line);
 
index 2f68c52..5c7023c 100644 (file)
@@ -32,8 +32,8 @@ struct pathgroup_data {
        int (*snprint)(char * buff, size_t len, struct pathgroup * pgp);
 };
 
-void get_path_layout (vector pathvec);
-void get_multipath_layout (vector mpvec);
+void get_path_layout (vector pathvec, int header);
+void get_multipath_layout (vector mpvec, int header);
 int snprint_path_header (char *, int, char *);
 int snprint_multipath_header (char *, int, char *);
 int snprint_path (char *, int, char *, struct path *);
index 44c6bf6..b7334ec 100644 (file)
@@ -288,7 +288,7 @@ configure (void)
        if (conf->verbosity > 2)
                print_all_paths(pathvec, 1);
 
-       get_path_layout(pathvec);
+       get_path_layout(pathvec, 1);
 
        if (get_dm_mpvec(curmp, pathvec, refwwid))
                goto out;
index f71dca0..540a330 100644 (file)
@@ -28,7 +28,7 @@ show_paths (char ** r, int * len, struct vectors * vecs, char * style)
        unsigned int maxlen = INITIAL_REPLY_LEN;
        int again = 1;
 
-       get_path_layout(vecs->pathvec);
+       get_path_layout(vecs->pathvec, 1);
        reply = MALLOC(maxlen);
 
        while (again) {
@@ -94,7 +94,7 @@ show_maps_topology (char ** r, int * len, struct vectors * vecs)
        unsigned int maxlen = INITIAL_REPLY_LEN;
        int again = 1;
  
-       get_path_layout(vecs->pathvec);
+       get_path_layout(vecs->pathvec, 0);
        reply = MALLOC(maxlen);
 
        while (again) {
@@ -191,7 +191,7 @@ cli_list_map_topology (void * v, char ** reply, int * len, void * data)
        struct vectors * vecs = (struct vectors *)data;
        char * param = get_keyparam(v, MAP);
        
-       get_path_layout(vecs->pathvec);
+       get_path_layout(vecs->pathvec, 0);
        mpp = find_mp_by_str(vecs->mpvec, param);
 
        if (!mpp)
@@ -222,7 +222,7 @@ show_maps (char ** r, int *len, struct vectors * vecs, char * style)
        unsigned int maxlen = INITIAL_REPLY_LEN;
        int again = 1;
 
-       get_multipath_layout(vecs->mpvec);
+       get_multipath_layout(vecs->mpvec, 1);
        reply = MALLOC(maxlen);
 
        while (again) {