Whamcloud - gitweb
LU-6210 utils: Use C99 initializers in lfs_setquota_times()
[fs/lustre-release.git] / lnet / utils / lnetctl.c
index 5444327..70c986a 100644 (file)
@@ -32,7 +32,7 @@
 #include <libcfs/util/parser.h>
 #include <lnet/lnetctl.h>
 #include <lnet/nidstr.h>
-#include "cyaml/cyaml.h"
+#include <cyaml.h>
 #include "lnetconfig/liblnetconfig.h"
 
 #define LNET_CONFIGURE         true
@@ -58,6 +58,7 @@ static int jt_set_numa(int argc, char **argv);
 static int jt_add_peer_nid(int argc, char **argv);
 static int jt_del_peer_nid(int argc, char **argv);
 /*static int jt_show_peer(int argc, char **argv);*/
+static int lnetctl_list_commands(int argc, char **argv);
 
 command_t lnet_cmds[] = {
        {"configure", jt_config_lnet, 0, "configure lnet\n"
@@ -1125,9 +1126,12 @@ static int jt_add_peer_nid(int argc, char **argv)
                                         !non_mr, -1, &err_rc);
 
 failed:
-       for (i = 0; i < size; i++)
-               free(nids[i]);
-       free(nids);
+       if (nids) {
+               /* free the array of nids */
+               for (i = 0; i < size; i++)
+                       free(nids[i]);
+               free(nids);
+       }
 
        if (rc != LUSTRE_CFG_RC_NO_ERR)
                cYAML_print_tree2file(stderr, err_rc);
@@ -1177,9 +1181,11 @@ static int jt_del_peer_nid(int argc, char **argv)
        rc = lustre_lnet_del_peer_nid(prim_nid, nids, size, -1, &err_rc);
 
 failed:
-       for (i = 0; i < size; i++)
-               free(nids[i]);
-       free(nids);
+       if (nids) {
+               for (i = 0; i < size; i++)
+                       free(nids[i]);
+               free(nids);
+       }
 
        if (rc != LUSTRE_CFG_RC_NO_ERR)
                cYAML_print_tree2file(stderr, err_rc);
@@ -1250,9 +1256,19 @@ command_t list[] = {
        {"help", Parser_help, 0, "help"},
        {"exit", Parser_quit, 0, "quit"},
        {"quit", Parser_quit, 0, "quit"},
+       {"--list-commands", lnetctl_list_commands, 0, "list commands"},
        { 0, 0, 0, NULL }
 };
 
+static int lnetctl_list_commands(int argc, char **argv)
+{
+       char buffer[81] = ""; /* 80 printable chars + terminating NUL */
+
+       Parser_list_commands(list, buffer, sizeof(buffer), NULL, 0, 4);
+
+       return 0;
+}
+
 int main(int argc, char **argv)
 {
        int rc = 0;