|
|
- From 26b77b7cdc70beddc68507f74372a4e2815720f0 Mon Sep 17 00:00:00 2001
- From: Yousong Zhou <yszhou4tech@gmail.com>
- Date: Sun, 17 May 2015 10:53:44 +0800
- Subject: [PATCH 210/210] xl2tpd-control: show all available commands in
- --help.
-
- ---
- xl2tpd-control.c | 63 ++++++++++++++++++++++++++++++++++++++----------------
- 1 file changed, 44 insertions(+), 19 deletions(-)
-
- diff --git a/xl2tpd-control.c b/xl2tpd-control.c
- index 6b08850..b98ff24 100644
- --- a/xl2tpd-control.c
- +++ b/xl2tpd-control.c
- @@ -51,6 +51,7 @@ struct command_t
- char *name;
- int (*handler) (FILE*, char* tunnel, int optc, char *optv[]);
- int requires_tunnel;
- + char *help;
- };
-
- int command_add_lac (FILE*, char* tunnel, int optc, char *optv[]);
- @@ -65,13 +66,29 @@ int command_available (FILE*, char* tunnel, int optc, char *optv[]);
-
- struct command_t commands[] = {
- /* Keep this command mapping for backwards compat */
- - {"add", &command_add_lac, TUNNEL_REQUIRED},
- - {"connect", &command_connect_lac, TUNNEL_REQUIRED},
- - {"disconnect", &command_disconnect_lac, TUNNEL_REQUIRED},
- - {"remove", &command_remove_lac, TUNNEL_REQUIRED},
- + {"add", &command_add_lac, TUNNEL_REQUIRED,
- + "\tadd\tadds new or modify existing lac configuration.\n"
- + "\t\tConfiguration must be specified as command options in\n"
- + "\t\t<key>=<value> pairs format.\n"
- + "\t\tSee available options in xl2tpd.conf(5)\n"
- + },
- + {"connect", &command_connect_lac, TUNNEL_REQUIRED,
- + "\tconnect\ttries to activate the tunnel.\n"
- + "\t\tUsername and secret for the tunnel can be passed as\n"
- + "\t\tcommand options.\n"
- + },
- + {"disconnect", &command_disconnect_lac, TUNNEL_REQUIRED,
- + "\tdisconnect\tdisconnects the tunnel.\n"
- + },
- + {"remove", &command_remove_lac, TUNNEL_REQUIRED,
- + "\tremove\tremoves lac configuration from xl2tpd.\n"
- + "\t\txl2tpd disconnects the tunnel before removing.\n"
- + },
-
- /* LAC commands */
- - {"add-lac", &command_add_lac, TUNNEL_REQUIRED},
- + {"add-lac", &command_add_lac, TUNNEL_REQUIRED,
- + "\tadd-lns\tadds new or modify existing lns configuration.\n"
- + },
- {"connect-lac", &command_connect_lac, TUNNEL_REQUIRED},
- {"disconnect-lac", &command_disconnect_lac, TUNNEL_REQUIRED},
- {"remove-lac", &command_remove_lac, TUNNEL_REQUIRED},
- @@ -89,36 +106,44 @@ struct command_t commands[] = {
-
- void usage()
- {
- + int i;
- +
- printf ("\nxl2tpd server version %s\n", SERVER_VERSION);
- printf ("Usage: xl2tpd-control [-c <PATH>] <command> <tunnel name> [<COMMAND OPTIONS>]\n"
- "\n"
- " -c\tspecifies xl2tpd control file\n"
- " -d\tspecify xl2tpd-control to run in debug mode\n"
- "--help\tshows extended help\n"
- - "Available commands: add, connect, disconnect, remove, add-lns\n"
- );
- +
- + printf ("Available commands: ");
- + for (i = 0; commands[i].name; i++) {
- + struct command_t *command = &commands[i];
- + int last = command[1].name == NULL;
- +
- + printf ("%s%s", command->name, !last ? ", " : "\n");
- + }
- }
-
- void help()
- {
- + int i;
- +
- usage();
- printf (
- "\n"
- "Commands help:\n"
- - "\tadd\tadds new or modify existing lac configuration.\n"
- - "\t\tConfiguration must be specified as command options in\n"
- - "\t\t<key>=<value> pairs format.\n"
- - "\t\tSee available options in xl2tpd.conf(5)\n"
- - "\tconnect\ttries to activate the tunnel.\n"
- - "\t\tUsername and secret for the tunnel can be passed as\n"
- - "\t\tcommand options.\n"
- - "\tdisconnect\tdisconnects the tunnel.\n"
- - "\tremove\tremoves lac configuration from xl2tpd.\n"
- - "\t\txl2tpd disconnects the tunnel before removing.\n"
- - "\n"
- - "\tadd-lns\tadds new or modify existing lns configuration.\n"
- - "See xl2tpd-control man page for more help\n"
- );
- +
- + for (i = 0; commands[i].name; i++) {
- + struct command_t *command = &commands[i];
- +
- + if (!command->help)
- + continue;
- + printf ("%s", command->help);
- + }
- + /*FIXME Ha! there is currently no manpage for xl2tpd-control */
- + printf ("See xl2tpd-control man page for more help\n");
- }
-
- void cleanup(void)
- --
- 1.7.10.4
-
|