#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
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"
!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);
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);
{"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;