command.c File Reference
VTY Command
`#include <stdio.h>`
`#include <stdlib.h>`
`#include <string.h>`
`#include <stdbool.h>`
`#include <syslog.h>`
`#include <errno.h>`
`#include <unistd.h>`
`#include <ctype.h>`
`#include <time.h>`
`#include <sys/time.h>`
`#include <sys/stat.h>`
`#include <osmocom/vty/vector.h>`
`#include <osmocom/vty/vty.h>`
`#include <osmocom/vty/command.h>`
`#include <osmocom/core/talloc.h>`

## Macros

#define | _XOPEN_SOURCE
#define | CONFIGFILE_MASK 022
#define | ADD(out, str)
#define | IPV6_ADDR_STR "0123456789abcdefABCDEF:.%"
#define | IPV6_PREFIX_STR "0123456789abcdefABCDEF:.%/"
#define | STATE_START 1
#define | STATE_COLON 2
#define | STATE_DOUBLE 3
#define | STATE_ADDR 4
#define | STATE_DOT 5
#define | STATE_SLASH 6
#define | STATE_MASK 7
#define | DECIMAL_STRLEN_MAX 10
#define | INIT_MATCHVEC_SIZE 10
#define | INIT_MATCHVEC_SIZE 10

## Enumerations

enum | match_type { no_match = 0, any_match, extend_match, ipv4_prefix_match, ipv4_match, ipv6_prefix_match, ipv6_match, range_match, vararg_match, partly_match, exact_match }

## Functions

void | print_version (int print_copyright)
| print the version (and optionally copyright) information More...
char * | argv_concat (const char **argv, int argc, int shift)
void | install_node (struct cmd_node *node, int(*func)(struct vty *))
| Install top node of command vector.
static int | cmp_node (const void *p, const void *q)
static int | cmp_desc (const void *p, const void *q)
static int | is_config_child (struct vty *vty)
void | sort_node (void)
| Sort each node's command element according to command string.
vector | cmd_make_strvec (const char *)
void | cmd_free_strvec (vector v)
| Free allocated string vector.
static char * | cmd_desc_str (const char **string)
| Fetch next description. Used in cmd_make_descvec().
static vector | cmd_make_descvec (const char *string, const char *descstr)
| New string vector.
static int | cmd_cmdsize (vector strvec)
const char * | cmd_prompt (enum node_type node)
| Return prompt character of specified node.
static char * | xml_escape (const char *inp)
static int | vty_dump_element (struct cmd_element *cmd, struct vty *vty)
static int | vty_dump_nodes (struct vty *vty)
void | install_element (int ntype, struct cmd_element *cmd)
| Install a command into a node. More...
void | install_element_ve (struct cmd_element *cmd)
static int | config_write_host (struct vty *vty)
static vector | cmd_node_vector (vector v, enum node_type ntype)
static enum match_type | cmd_ipv4_match (const char *str)
static enum match_type | cmd_ipv4_prefix_match (const char *str)
static int | cmd_range_match (const char *range, const char *str)
static char * | cmd_deopt (const char *str)
static enum match_type | cmd_match (const char *str, const char *command, enum match_type min, bool recur)
static enum match_type | cmd_filter (char *command, vector v, unsigned int index, enum match_type level)
static int | is_cmd_ambiguous (char *command, vector v, int index, enum match_type type)
static const char * | cmd_entry_function (const char *src, const char *dst)
static const char * | cmd_entry_function_desc (const char *src, const char *dst)
static int | cmd_unique_string (vector v, const char *str)
static int | desc_unique_string (vector v, const char *str)
static int | cmd_try_do_shortcut (enum node_type node, char *first_word)
static vector | cmd_describe_command_real (vector vline, struct vty *vty, int *status)
vector | cmd_describe_command (vector vline, struct vty *vty, int *status)
static int | cmd_lcd (char **matched)
static char ** | cmd_complete_command_real (vector vline, struct vty *vty, int *status)
char ** | cmd_complete_command (vector vline, struct vty *vty, int *status)
int | vty_go_parent (struct vty *vty)
static int | cmd_execute_command_real (vector vline, struct vty *vty, struct cmd_element **cmd)
int | cmd_execute_command (vector, struct vty *, struct cmd_element **, int)
int | cmd_execute_command_strict (vector, struct vty *, struct cmd_element **)
int | config_from_file (struct vty *, FILE *)
| DEFUN (config_terminal, config_terminal_cmd,"configure terminal","Configuration from vty interface\n""Configuration terminal\n")
| DEFUN (enable, config_enable_cmd,"enable","Turn on privileged mode command\n")
| DEFUN (disable, config_disable_cmd,"disable","Turn off privileged mode command\n")
| gDEFUN (config_exit, config_exit_cmd,"exit","Exit current mode and down to previous mode\n")
| gDEFUN (config_end, config_end_cmd,"end","End current mode and change to enable mode.")
| DEFUN (show_version, show_version_cmd,"show version", SHOW_STR"Displays program version\n")
| DEFUN (show_online_help, show_online_help_cmd,"show online-help", SHOW_STR"Online help\n")
| gDEFUN (config_help, config_help_cmd,"help","Description of the interactive help system\n")
| gDEFUN (config_list, config_list_cmd,"list","Print command list\n")
static int | write_config_file (const char *config_file, char **outpath)
| DEFUN (config_write_file, config_write_file_cmd,"write file","Write running configuration to memory, network, or terminal\n""Write to configuration file\n")
| ALIAS (config_write_file, config_write_cmd,"write","Write running configuration to memory, network, or terminal\n") ALIAS(config_write_file
write Write running configuration to or terminal n Write configuration to the | file (same as write file)\n") ALIAS(config_write_file
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup | config (same as write file)\n") DEFUN(config_write_terminal
| if (vty->type==VTY_SHELL_SERV)
| vty_out (vty,"!%s", VTY_NEWLINE)
| for ()
| vty_out (vty,"end%s", VTY_NEWLINE)
| ALIAS (config_write_terminal, show_running_config_cmd,"show running-config", SHOW_STR"running configuration\n")
| DEFUN (config_hostname, hostname_cmd,"hostname WORD","Set system's network name\n""This system's network name\n")
| DEFUN (config_no_hostname, no_hostname_cmd,"no hostname [HOSTNAME]", NO_STR"Reset system's network name\n""Host name of this router\n")
| DEFUN (config_password, password_cmd,"password (8|) WORD","Assign the terminal connection password\n""Specifies a HIDDEN password will follow\n""dummy string \n""The HIDDEN line password string\n")
| ALIAS (config_password, password_text_cmd,"password LINE","Assign the terminal connection password\n""The UNENCRYPTED (cleartext) line password\n")
| ALIAS (config_enable_password, enable_password_text_cmd,"enable password LINE","Modify enable password parameters\n""Assign the privileged level password\n""The UNENCRYPTED (cleartext) 'enable' password\n")
| DEFUN (config_terminal_length, config_terminal_length_cmd,"terminal length <0-512>","Set terminal line parameters\n""Set number of lines on a screen\n""Number of lines on screen (0 for no pausing)\n")
| DEFUN (config_terminal_no_length, config_terminal_no_length_cmd,"terminal no length","Set terminal line parameters\n"NO_STR"Set number of lines on a screen\n")
| DEFUN (service_terminal_length, service_terminal_length_cmd,"service terminal-length <0-512>","Set up miscellaneous service\n""System wide terminal length configuration\n""Number of lines of VTY (0 means no line control)\n")
| DEFUN (no_service_terminal_length, no_service_terminal_length_cmd,"no service terminal-length [<0-512>]", NO_STR"Set up miscellaneous service\n""System wide terminal length configuration\n""Number of lines of VTY (0 means no line control)\n")
| DEFUN_HIDDEN (do_echo, echo_cmd,"echo .MESSAGE","Echo a message back to the vty\n""The message to echo\n")
| DEFUN (banner_motd_file, banner_motd_file_cmd,"banner motd file [FILE]","Set banner\n""Banner for motd\n""Banner from a file\n""Filename\n")
| DEFUN (banner_motd_default, banner_motd_default_cmd,"banner motd default","Set banner string\n""Strings for motd\n""Default string\n")
| DEFUN (no_banner_motd, no_banner_motd_cmd,"no banner motd", NO_STR"Set banner string\n""Strings for motd\n")
void | host_config_set (const char *)
void | install_default (int node_type)
void | vty_install_default (int node_type)
int | osmo_vty_write_config_file (const char *filename)
| Write the current running config to a given file. More...
int | osmo_vty_save_config_file (void)
| Save the current state to the config file. More...
void | cmd_init (int)

## Variables

void * | tall_vty_cmd_ctx
vector | cmdvec
struct host | host
struct cmd_node | auth_node
struct cmd_node | view_node
struct cmd_node | auth_enable_node
struct cmd_node | enable_node
struct cmd_node | config_node
const char * | default_motd = ""
| config_write_memory_cmd
write | memory
write Write running configuration to | network
write Write running configuration to or terminal n Write configuration to the | copy_runningconfig_startupconfig_cmd
write Write running configuration to or terminal n Write configuration to the copy running config startup | config
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup | config_write_terminal_cmd
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup write | terminal
write Write running configuration to or terminal n Write configuration to the copy running config startup Copy configuration n Copy running config to n Copy running config to startup write Write running configuration to or terminal n Write to terminal | n
struct cmd_node * | node
| else
return | CMD_SUCCESS

## Macro Definition Documentation

#define ADD | ( |  | out,
|  |  | str
| ) |  |

Value:
for (j = 0; j < strlen(str); ++j) \
*(out++) = str[j];