libosmovty 1.9.0.195-dafd
Osmocom VTY library
VTY (Virtual TTY) interface

Files

file  vty.h
 

Data Structures

struct  vty
 Internal representation of a single VTY. More...
 
struct  vty_app_info
 Information an application registers with the VTY. More...
 
struct  vty_signal_data
 

Macros

#define VTY_PRINTF_ATTRIBUTE(a, b)
 
#define ERRNO_IO_RETRY(EN)    (((EN) == EAGAIN) || ((EN) == EWOULDBLOCK) || ((EN) == EINTR))
 
#define VTY_READ_BUFSIZ   512
 
#define VTY_BUFSIZ   512
 
#define VTY_MAXHIST   20
 
#define VTY_CMD_USR_ATTR_NUM   32
 
#define VTY_CMD_ATTR_FLAGS_RESERVED    { '.', '!', '@', '^' }
 
#define VTY_NEWLINE   ((vty->type == VTY_TERM) ? "\r\n" : "\n")
 

Enumerations

enum  event {
  VTY_SERV ,
  VTY_READ ,
  VTY_WRITE ,
  VTY_CLOSED ,
  VTY_TIMEOUT_RESET
}
 VTY events. More...
 
enum  vty_type {
  VTY_TERM ,
  VTY_FILE ,
  VTY_SHELL ,
  VTY_SHELL_SERV
}
 
enum  signal_vty { S_VTY_EVENT }
 signal handling More...
 

Functions

static const char * vty_newline (struct vty *vty)
 
void vty_init (struct vty_app_info *app_info)
 Initialize VTY layer. More...
 
int vty_read_config_file (const char *file_name, void *priv)
 Read the configuration file using the VTY code. More...
 
int vty_read_config_filep (FILE *confp, void *priv)
 Read up VTY configuration from a file stream. More...
 
void vty_init_vtysh (void)
 
void vty_reset (void)
 Reset all VTY status. More...
 
struct vtyvty_new (void)
 Allocate a new vty interface structure. More...
 
struct vtyvty_create (int vty_sock, void *priv)
 Create new vty structure. More...
 
bool vty_is_active (struct vty *vty)
 
int vty_out (struct vty *, const char *,...) VTY_PRINTF_ATTRIBUTE(2
 
int int vty_out_va (struct vty *vty, const char *format, va_list ap)
 
int vty_out_newline (struct vty *)
 print a newline on the given VTY More...
 
int vty_out_uptime (struct vty *vty, const struct timespec *starttime)
 calculates the time difference of a give timespec to the current time and prints in a human readable format (days, hours, minutes, seconds). More...
 
int vty_read (struct vty *vty)
 Read data via vty socket. More...
 
void vty_close (struct vty *)
 Close a given vty interface. More...
 
void vty_flush (struct vty *vty)
 
char * vty_get_cwd (void)
 
void vty_log (const char *level, const char *proto, const char *fmt, va_list)
 
int vty_config_lock (struct vty *)
 Lock the configuration to a given VTY. More...
 
int vty_config_unlock (struct vty *)
 Unlock the configuration from a given VTY. More...
 
int vty_shell (struct vty *)
 Return if this VTY is a shell or not. More...
 
int vty_shell_serv (struct vty *)
 
void vty_hello (struct vty *)
 
void * vty_current_index (struct vty *)
 return the current index of a given VTY More...
 
int vty_current_node (struct vty *vty)
 return the current node of a given VTY More...
 
int vty_go_parent (struct vty *vty)
 
const char * vty_get_bind_addr (void)
 
int vty_get_bind_port (int default_port)
 Returns configured port passed to the 'line vty'/'bind' command or default_port. More...
 
static int handle_counter (struct osmo_counter *counter, void *vctx_)
 
void vty_out_statistics_partial2 (struct vty *vty, const char *prefix, int max_level, bool skip_zero)
 
void vty_out_statistics_partial (struct vty *vty, const char *prefix, int max_level)
 
void vty_out_statistics_full2 (struct vty *vty, const char *prefix, bool skip_zero)
 
void vty_out_statistics_full (struct vty *vty, const char *prefix)
 
char * vty_cmd_string_from_valstr (void *ctx, const struct value_string *vals, const char *prefix, const char *sep, const char *end, int do_lower)
 Generate a VTY command string from value_string. More...
 

Variables

void * tall_vty_ctx
 
struct cmd_element cfg_description_cmd
 
struct cmd_element cfg_no_description_cmd
 

Detailed Description

Macro Definition Documentation

◆ ERRNO_IO_RETRY

#define ERRNO_IO_RETRY (   EN)     (((EN) == EAGAIN) || ((EN) == EWOULDBLOCK) || ((EN) == EINTR))

◆ VTY_BUFSIZ

#define VTY_BUFSIZ   512

◆ VTY_CMD_ATTR_FLAGS_RESERVED

#define VTY_CMD_ATTR_FLAGS_RESERVED    { '.', '!', '@', '^' }

◆ VTY_CMD_USR_ATTR_NUM

#define VTY_CMD_USR_ATTR_NUM   32

◆ VTY_MAXHIST

#define VTY_MAXHIST   20

◆ VTY_NEWLINE

#define VTY_NEWLINE   ((vty->type == VTY_TERM) ? "\r\n" : "\n")

◆ VTY_PRINTF_ATTRIBUTE

#define VTY_PRINTF_ATTRIBUTE (   a,
 
)

◆ VTY_READ_BUFSIZ

#define VTY_READ_BUFSIZ   512

Enumeration Type Documentation

◆ event

enum event

VTY events.

Enumerator
VTY_SERV 
VTY_READ 
VTY_WRITE 
VTY_CLOSED 
VTY_TIMEOUT_RESET 

◆ signal_vty

enum signal_vty

signal handling

Enumerator
S_VTY_EVENT 

◆ vty_type

enum vty_type
Enumerator
VTY_TERM 
VTY_FILE 
VTY_SHELL 
VTY_SHELL_SERV 

Function Documentation

◆ handle_counter()

static int handle_counter ( struct osmo_counter counter,
void *  vctx_ 
)
static

◆ vty_close()

void vty_close ( struct vty vty)

◆ vty_cmd_string_from_valstr()

char * vty_cmd_string_from_valstr ( void *  ctx,
const struct value_string vals,
const char *  prefix,
const char *  sep,
const char *  end,
int  do_lower 
)

Generate a VTY command string from value_string.

References len(), name, OSMO_SNPRINTF_RET, vty_out_context::prefix, value_string::str, and value_string::value.

◆ vty_config_lock()

int vty_config_lock ( struct vty vty)

Lock the configuration to a given VTY.

Parameters
[in]vtyVTY to which the config shall be locked
Returns
1 on success, 0 on error

This shall be used to make sure only one VTY at a given time has access to modify the configuration

References config, and vty_config.

Referenced by DEFUN().

◆ vty_config_unlock()

int vty_config_unlock ( struct vty vty)

Unlock the configuration from a given VTY.

Parameters
[in]vtyVTY from which the configuration shall be unlocked
Returns
0 in case of success

References config, and vty_config.

Referenced by gDEFUN(), vty_close(), and vty_end_config().

◆ vty_create()

◆ vty_current_index()

void * vty_current_index ( struct vty vty)

return the current index of a given VTY

References index.

◆ vty_current_node()

int vty_current_node ( struct vty vty)

return the current node of a given VTY

References node.

◆ vty_flush()

void vty_flush ( struct vty vty)

References buffer_flush_all(), fd, and obuf.

◆ vty_get_bind_addr()

const char * vty_get_bind_addr ( void  )

◆ vty_get_bind_port()

int vty_get_bind_port ( int  default_port)

Returns configured port passed to the 'line vty'/'bind' command or default_port.

References vty_bind_port.

Referenced by telnet_init_default().

◆ vty_get_cwd()

char * vty_get_cwd ( void  )

References vty_cwd.

◆ vty_go_parent()

◆ vty_hello()

void vty_hello ( struct vty vty)

◆ vty_init()

◆ vty_init_vtysh()

void vty_init_vtysh ( void  )

◆ vty_is_active()

bool vty_is_active ( struct vty vty)

◆ vty_log()

void vty_log ( const char *  level,
const char *  proto,
const char *  fmt,
va_list   
)

◆ vty_new()

struct vty * vty_new ( void  )

Allocate a new vty interface structure.

References buffer_free(), buffer_new(), INIT_LLIST_HEAD, tall_vty_ctx, and VTY_BUFSIZ.

Referenced by vty_create(), vty_read_config_filep(), and write_config_file().

◆ vty_newline()

static const char * vty_newline ( struct vty vty)
inlinestatic

References VTY_NEWLINE.

Referenced by vty_out_newline().

◆ vty_out()

◆ vty_out_newline()

int vty_out_newline ( struct vty vty)

print a newline on the given VTY

References buffer_put(), obuf, and vty_newline().

Referenced by DEFUN().

◆ vty_out_statistics_full()

void vty_out_statistics_full ( struct vty vty,
const char *  prefix 
)

◆ vty_out_statistics_full2()

void vty_out_statistics_full2 ( struct vty vty,
const char *  prefix,
bool  skip_zero 
)

◆ vty_out_statistics_partial()

void vty_out_statistics_partial ( struct vty vty,
const char *  prefix,
int  max_level 
)

◆ vty_out_statistics_partial2()

◆ vty_out_uptime()

int vty_out_uptime ( struct vty vty,
const struct timespec *  starttime 
)

calculates the time difference of a give timespec to the current time and prints in a human readable format (days, hours, minutes, seconds).

References h, osmo_clock_gettime(), starttime, timespecsub, and vty_out().

Referenced by DEFUN().

◆ vty_out_va()

int int vty_out_va ( struct vty vty,
const char *  format,
va_list  ap 
)

◆ vty_read()

◆ vty_read_config_file()

int vty_read_config_file ( const char *  file_name,
void *  priv 
)

Read the configuration file using the VTY code.

Parameters
[in]file_namefile name of the configuration file
[in]privprivate data to be passed to vty_read_file

References host_config_set(), and vty_read_config_filep().

◆ vty_read_config_filep()

int vty_read_config_filep ( FILE *  confp,
void *  priv 
)

Read up VTY configuration from a file stream.

Parameters
[in]confpfile pointer of the stream for the configuration file
[in]privprivate data to be passed to vty_read_file
Returns
Zero on success, non-zero on error

References buf, CMD_ERR_AMBIGUOUS, CMD_ERR_INVALID_INDENT, CMD_ERR_NO_MATCH, CMD_SUCCESS, config_from_file(), CONFIG_NODE, fd, node, priv, type, vty, vty_close(), VTY_FILE, and vty_new().

Referenced by vty_read_config_file().

◆ vty_reset()

void vty_reset ( void  )

Reset all VTY status.

References buffer_reset(), obuf, status, vector_active, vector_slot, vty, vty_close(), vtyvec, and Vvty_serv_thread.

◆ vty_shell()

int vty_shell ( struct vty vty)

Return if this VTY is a shell or not.

References type, and VTY_SHELL.

Referenced by vty_out_va().

◆ vty_shell_serv()

int vty_shell_serv ( struct vty vty)

References type, and VTY_SHELL_SERV.

Variable Documentation

◆ cfg_description_cmd

struct cmd_element cfg_description_cmd
extern

◆ cfg_no_description_cmd

struct cmd_element cfg_no_description_cmd
extern

◆ tall_vty_ctx

void* tall_vty_ctx
extern

Referenced by buffer_getstr().