\doxysection{src/vty/vty.c File Reference}
\label{vty_8c}\index{src/vty/vty.c@{src/vty/vty.c}}
{\ttfamily \#include $<$stdio.\+h$>$}\newline
{\ttfamily \#include $<$stdarg.\+h$>$}\newline
{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$ctype.\+h$>$}\newline
{\ttfamily \#include $<$termios.\+h$>$}\newline
{\ttfamily \#include $<$sys/utsname.\+h$>$}\newline
{\ttfamily \#include $<$sys/param.\+h$>$}\newline
{\ttfamily \#include $<$arpa/telnet.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/command.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/buffer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ MAXPATHLEN}~4096
\item 
\#define \textbf{ SYSCONFDIR}~\char`\"{}/usr/local/etc\char`\"{}
\item 
\#define \textbf{ VTY\+\_\+\+BIND\+\_\+\+ADDR\+\_\+\+DEFAULT}~\char`\"{}127.\+0.\+0.\+1\char`\"{}
\item 
\#define \textbf{ CONTROL}(X)~((X) -\/ \textquotesingle{}@\textquotesingle{})
\item 
\#define \textbf{ VTY\+\_\+\+NORMAL}~0
\item 
\#define \textbf{ VTY\+\_\+\+PRE\+\_\+\+ESCAPE}~1
\item 
\#define \textbf{ VTY\+\_\+\+ESCAPE}~2
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
void \textbf{ vty\+\_\+event} (enum \textbf{ event} \textbf{ event}, int sock, struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em callback from core VTY code about VTY related events \end{DoxyCompactList}\item 
static void \textbf{ vty\+\_\+clear\+\_\+buf} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
struct \textbf{ vty} $\ast$ \textbf{ vty\+\_\+new} (void)
\begin{DoxyCompactList}\small\item\em Allocate a new vty interface structure. \end{DoxyCompactList}\item 
static void \textbf{ vty\+\_\+auth} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
void \textbf{ vty\+\_\+flush} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
void \textbf{ vty\+\_\+close} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Close a given vty interface. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+shell} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Return if this VTY is a shell or not. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+out\+\_\+va} (struct \textbf{ vty} $\ast$\textbf{ vty}, const char $\ast$format, va\+\_\+list ap)
\item 
int \textbf{ vty\+\_\+out} (struct \textbf{ vty} $\ast$\textbf{ vty}, const char $\ast$format,...)
\begin{DoxyCompactList}\small\item\em VTY standard output function. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+out\+\_\+newline} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em print a newline on the given VTY \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+out\+\_\+uptime} (struct \textbf{ vty} $\ast$\textbf{ vty}, const struct timespec $\ast$\textbf{ starttime})
\begin{DoxyCompactList}\small\item\em calculates the time difference of a give timespec to the current time and prints in a human readable format (days, hours, minutes, seconds). \end{DoxyCompactList}\item 
void $\ast$ \textbf{ vty\+\_\+current\+\_\+index} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em return the current index of a given VTY \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+current\+\_\+node} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em return the current node of a given VTY \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+config\+\_\+lock} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Lock the configuration to a given VTY. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+config\+\_\+unlock} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Unlock the configuration from a given VTY. \end{DoxyCompactList}\item 
void \textbf{ vty\+\_\+hello} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+prompt} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static int \textbf{ vty\+\_\+command} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+write} (struct \textbf{ vty} $\ast$\textbf{ vty}, const char $\ast$buf, size\+\_\+t nbytes)
\item 
static void \textbf{ vty\+\_\+ensure} (struct \textbf{ vty} $\ast$\textbf{ vty}, int \textbf{ length})
\item 
static void \textbf{ vty\+\_\+self\+\_\+insert} (struct \textbf{ vty} $\ast$\textbf{ vty}, char \textbf{ c})
\item 
static void \textbf{ vty\+\_\+self\+\_\+insert\+\_\+overwrite} (struct \textbf{ vty} $\ast$\textbf{ vty}, char \textbf{ c})
\item 
static void \textbf{ vty\+\_\+insert\+\_\+word\+\_\+overwrite} (struct \textbf{ vty} $\ast$\textbf{ vty}, char $\ast$str)
\item 
static void \textbf{ vty\+\_\+forward\+\_\+char} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+backward\+\_\+char} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+beginning\+\_\+of\+\_\+line} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+end\+\_\+of\+\_\+line} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+hist\+\_\+add} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static int \textbf{ vty\+\_\+telnet\+\_\+option} (struct \textbf{ vty} $\ast$\textbf{ vty}, unsigned char $\ast$buf, int nbytes)
\item 
static int \textbf{ vty\+\_\+execute} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+will\+\_\+echo} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+will\+\_\+suppress\+\_\+go\+\_\+ahead} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+dont\+\_\+linemode} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+do\+\_\+window\+\_\+size} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+kill\+\_\+line\+\_\+from\+\_\+beginning} (struct \textbf{ vty} $\ast$)
\item 
static void \textbf{ vty\+\_\+redraw\+\_\+line} (struct \textbf{ vty} $\ast$)
\item 
static void \textbf{ vty\+\_\+history\+\_\+print} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+next\+\_\+line} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+previous\+\_\+line} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+forward\+\_\+word} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+backward\+\_\+pure\+\_\+word} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+backward\+\_\+word} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+down\+\_\+level} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+clear\+\_\+screen} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+end\+\_\+config} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+delete\+\_\+char} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+delete\+\_\+backward\+\_\+char} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+kill\+\_\+line} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+forward\+\_\+kill\+\_\+word} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+backward\+\_\+kill\+\_\+word} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+transpose\+\_\+chars} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+complete\+\_\+command} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+describe\+\_\+fold} (struct \textbf{ vty} $\ast$\textbf{ vty}, int cmd\+\_\+width, unsigned int desc\+\_\+width, struct \textbf{ desc} $\ast$\textbf{ desc})
\item 
static void \textbf{ vty\+\_\+describe\+\_\+command} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+stop\+\_\+input} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+escape\+\_\+map} (unsigned char \textbf{ c}, struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static void \textbf{ vty\+\_\+buffer\+\_\+reset} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
int \textbf{ vty\+\_\+read} (struct \textbf{ vty} $\ast$\textbf{ vty})
\begin{DoxyCompactList}\small\item\em Read data via vty socket. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+read\+\_\+config\+\_\+filep} (FILE $\ast$confp, void $\ast$priv)
\begin{DoxyCompactList}\small\item\em Read up VTY configuration from a file stream. \end{DoxyCompactList}\item 
struct \textbf{ vty} $\ast$ \textbf{ vty\+\_\+create} (int vty\+\_\+sock, void $\ast$priv)
\begin{DoxyCompactList}\small\item\em Create new vty structure. \end{DoxyCompactList}\item 
\textbf{ DEFUN} (config\+\_\+who, config\+\_\+who\+\_\+cmd, \char`\"{}who\char`\"{}, \char`\"{}Display who is on \textbf{ vty\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (line\+\_\+vty, line\+\_\+vty\+\_\+cmd, \char`\"{}line \textbf{ vty}\char`\"{}, \char`\"{}Configure a \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{} \char`\"{}Virtual \textbf{ terminal\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (vty\+\_\+login, vty\+\_\+login\+\_\+cmd, \char`\"{}login\char`\"{}, \char`\"{}Enable password \textbf{ checking\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (no\+\_\+vty\+\_\+login, no\+\_\+vty\+\_\+login\+\_\+cmd, \char`\"{}no login\char`\"{}, NO\+\_\+\+STR \char`\"{}Enable password \textbf{ checking\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (\textbf{ vty\+\_\+bind}, vty\+\_\+bind\+\_\+cmd, \char`\"{}bind A.\+B.\+C.\+D [$<$0-\/65535$>$]\char`\"{}, \char`\"{}Accept VTY telnet connections on local \textbf{ interface\textbackslash{}n}\char`\"{} \char`\"{}Local interface IP address (default\+: \char`\"{} VTY\+\_\+\+BIND\+\_\+\+ADDR\+\_\+\+DEFAULT \char`\"{})\textbackslash{}n\char`\"{} \char`\"{}Local TCP port \textbf{ number\textbackslash{}n}\char`\"{})
\item 
const char $\ast$ \textbf{ vty\+\_\+get\+\_\+bind\+\_\+addr} (void)
\item 
int \textbf{ vty\+\_\+get\+\_\+bind\+\_\+port} (int default\+\_\+port)
\begin{DoxyCompactList}\small\item\em Returns configured port passed to the \textquotesingle{}line vty\textquotesingle{}/\textquotesingle{}bind\textquotesingle{} command or default\+\_\+port. \end{DoxyCompactList}\item 
\textbf{ DEFUN} (service\+\_\+advanced\+\_\+vty, service\+\_\+advanced\+\_\+vty\+\_\+cmd, \char`\"{}service advanced-\/\textbf{ vty}\char`\"{}, \char`\"{}Set up miscellaneous \textbf{ service\textbackslash{}n}\char`\"{} \char`\"{}Enable advanced \textbf{ mode} \textbf{ vty} \textbf{ interface\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (no\+\_\+service\+\_\+advanced\+\_\+vty, no\+\_\+service\+\_\+advanced\+\_\+vty\+\_\+cmd, \char`\"{}no service advanced-\/\textbf{ vty}\char`\"{}, NO\+\_\+\+STR \char`\"{}Set up miscellaneous \textbf{ service\textbackslash{}n}\char`\"{} \char`\"{}Enable advanced \textbf{ mode} \textbf{ vty} \textbf{ interface\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (terminal\+\_\+monitor, terminal\+\_\+monitor\+\_\+cmd, \char`\"{}terminal monitor\char`\"{}, \char`\"{}Set \textbf{ terminal} line \textbf{ parameters\textbackslash{}n}\char`\"{} \char`\"{}Copy debug output to the current \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (terminal\+\_\+no\+\_\+monitor, terminal\+\_\+no\+\_\+monitor\+\_\+cmd, \char`\"{}terminal no monitor\char`\"{}, \char`\"{}Set \textbf{ terminal} line \textbf{ parameters\textbackslash{}n}\char`\"{} NO\+\_\+\+STR \char`\"{}Copy debug output to the current \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+history, show\+\_\+history\+\_\+cmd, \char`\"{}show history\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Display the session command \textbf{ history\textbackslash{}n}\char`\"{})
\item 
static int \textbf{ vty\+\_\+config\+\_\+write} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
void \textbf{ vty\+\_\+reset} (void)
\begin{DoxyCompactList}\small\item\em Reset all VTY status. \end{DoxyCompactList}\item 
static void \textbf{ vty\+\_\+save\+\_\+cwd} (void)
\item 
char $\ast$ \textbf{ vty\+\_\+get\+\_\+cwd} (void)
\item 
int \textbf{ vty\+\_\+shell\+\_\+serv} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
void \textbf{ vty\+\_\+init\+\_\+vtysh} (void)
\item 
void \textbf{ vty\+\_\+init} (struct \textbf{ vty\+\_\+app\+\_\+info} $\ast$app\+\_\+info)
\begin{DoxyCompactList}\small\item\em Initialize VTY layer. \end{DoxyCompactList}\item 
int \textbf{ vty\+\_\+read\+\_\+config\+\_\+file} (const char $\ast$file\+\_\+name, void $\ast$priv)
\begin{DoxyCompactList}\small\item\em Read the configuration file using the VTY code. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ host} \textbf{ host}
\item 
static \textbf{ vector} \textbf{ vtyvec}
\item 
\textbf{ vector} \textbf{ Vvty\+\_\+serv\+\_\+thread}
\item 
char $\ast$ \textbf{ vty\+\_\+cwd} = NULL
\item 
static const char $\ast$ \textbf{ vty\+\_\+bind\+\_\+addr} = NULL
\item 
static int \textbf{ vty\+\_\+bind\+\_\+port} = -\/1
\item 
static int \textbf{ vty\+\_\+config}
\item 
static int \textbf{ password\+\_\+check}
\item 
void $\ast$ \textbf{ tall\+\_\+vty\+\_\+ctx}
\item 
static const char \textbf{ telnet\+\_\+backward\+\_\+char} = 0x08
\item 
static const char \textbf{ telnet\+\_\+space\+\_\+char} = \textquotesingle{} \textquotesingle{}
\item 
static const char \textbf{ telnet\+\_\+escape\+\_\+char} = 0x1B
\item 
struct \textbf{ cmd\+\_\+node} \textbf{ vty\+\_\+node}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{vty_8c_aab05ecebba269f4510ca9a4cfdeb4382}} 
\index{vty.c@{vty.c}!CONTROL@{CONTROL}}
\index{CONTROL@{CONTROL}!vty.c@{vty.c}}
\doxysubsubsection{CONTROL}
{\footnotesize\ttfamily \#define CONTROL(\begin{DoxyParamCaption}\item[{}]{X }\end{DoxyParamCaption})~((X) -\/ \textquotesingle{}@\textquotesingle{})}

\mbox{\label{vty_8c_addfa831c1473e710d2b71b72fd7fcfa5}} 
\index{vty.c@{vty.c}!MAXPATHLEN@{MAXPATHLEN}}
\index{MAXPATHLEN@{MAXPATHLEN}!vty.c@{vty.c}}
\doxysubsubsection{MAXPATHLEN}
{\footnotesize\ttfamily \#define MAXPATHLEN~4096}

\mbox{\label{vty_8c_a2f62cb1c6f014272be957f002103552e}} 
\index{vty.c@{vty.c}!SYSCONFDIR@{SYSCONFDIR}}
\index{SYSCONFDIR@{SYSCONFDIR}!vty.c@{vty.c}}
\doxysubsubsection{SYSCONFDIR}
{\footnotesize\ttfamily \#define SYSCONFDIR~\char`\"{}/usr/local/etc\char`\"{}}

\mbox{\label{vty_8c_a0412ed130a5f389177d0f0725aba3978}} 
\index{vty.c@{vty.c}!VTY\_BIND\_ADDR\_DEFAULT@{VTY\_BIND\_ADDR\_DEFAULT}}
\index{VTY\_BIND\_ADDR\_DEFAULT@{VTY\_BIND\_ADDR\_DEFAULT}!vty.c@{vty.c}}
\doxysubsubsection{VTY\_BIND\_ADDR\_DEFAULT}
{\footnotesize\ttfamily \#define VTY\+\_\+\+BIND\+\_\+\+ADDR\+\_\+\+DEFAULT~\char`\"{}127.\+0.\+0.\+1\char`\"{}}

\mbox{\label{vty_8c_adee5f2176eb8e53a301dd8d0f377251b}} 
\index{vty.c@{vty.c}!VTY\_ESCAPE@{VTY\_ESCAPE}}
\index{VTY\_ESCAPE@{VTY\_ESCAPE}!vty.c@{vty.c}}
\doxysubsubsection{VTY\_ESCAPE}
{\footnotesize\ttfamily \#define VTY\+\_\+\+ESCAPE~2}

\mbox{\label{vty_8c_acf239d95250577af6d34d80d70aac760}} 
\index{vty.c@{vty.c}!VTY\_NORMAL@{VTY\_NORMAL}}
\index{VTY\_NORMAL@{VTY\_NORMAL}!vty.c@{vty.c}}
\doxysubsubsection{VTY\_NORMAL}
{\footnotesize\ttfamily \#define VTY\+\_\+\+NORMAL~0}

\mbox{\label{vty_8c_a3aac53820dc12306e1c0d140f1f7bb56}} 
\index{vty.c@{vty.c}!VTY\_PRE\_ESCAPE@{VTY\_PRE\_ESCAPE}}
\index{VTY\_PRE\_ESCAPE@{VTY\_PRE\_ESCAPE}!vty.c@{vty.c}}
\doxysubsubsection{VTY\_PRE\_ESCAPE}
{\footnotesize\ttfamily \#define VTY\+\_\+\+PRE\+\_\+\+ESCAPE~1}



\doxysubsection{Function Documentation}
\mbox{\label{vty_8c_a3b609806c0be62553c20208f81465974}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [1/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{config\+\_\+who}]{,  }\item[{config\+\_\+who\+\_\+cmd}]{,  }\item[{\char`\"{}who\char`\"{}}]{,  }\item[{\char`\"{}Display who is on \textbf{ vty\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ vty\+::config}, \textbf{ vector\+\_\+active}, \textbf{ vector\+\_\+slot}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, and \textbf{ vtyvec}.

\mbox{\label{vty_8c_ab959384701febc4df84a337817becc86}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [2/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{line\+\_\+vty}]{,  }\item[{line\+\_\+vty\+\_\+cmd}]{,  }\item[{\char`\"{}line \textbf{ vty}\char`\"{}}]{,  }\item[{\char`\"{}Configure a \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{} \char`\"{}Virtual \textbf{ terminal\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ vty\+::node}, and \textbf{ VTY\+\_\+\+NODE}.

\mbox{\label{vty_8c_adfa815e4d85ab56f83415d4ec0fececf}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [3/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{no\+\_\+service\+\_\+advanced\+\_\+vty}]{,  }\item[{no\+\_\+service\+\_\+advanced\+\_\+vty\+\_\+cmd}]{,  }\item[{\char`\"{}no service advanced-\/\textbf{ vty}\char`\"{}}]{,  }\item[{\textbf{ NO\+\_\+\+STR} \char`\"{}Set up miscellaneous \textbf{ service\textbackslash{}n}\char`\"{} \char`\"{}Enable advanced \textbf{ mode} \textbf{ vty} \textbf{ interface\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ host\+::advanced}, and \textbf{ CMD\+\_\+\+SUCCESS}.

\mbox{\label{vty_8c_a5cbf6e654a28cc49f00a50e0727a349e}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [4/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{no\+\_\+vty\+\_\+login}]{,  }\item[{no\+\_\+vty\+\_\+login\+\_\+cmd}]{,  }\item[{\char`\"{}no login\char`\"{}}]{,  }\item[{\textbf{ NO\+\_\+\+STR} \char`\"{}Enable password \textbf{ checking\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ password\+\_\+check}.

\mbox{\label{vty_8c_a3b8e65b659426241ab9058d20682fbf8}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [5/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{service\+\_\+advanced\+\_\+vty}]{,  }\item[{service\+\_\+advanced\+\_\+vty\+\_\+cmd}]{,  }\item[{\char`\"{}service advanced-\/\textbf{ vty}\char`\"{}}]{,  }\item[{\char`\"{}Set up miscellaneous \textbf{ service\textbackslash{}n}\char`\"{} \char`\"{}Enable advanced \textbf{ mode} \textbf{ vty} \textbf{ interface\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ host\+::advanced}, and \textbf{ CMD\+\_\+\+SUCCESS}.

\mbox{\label{vty_8c_a7c7720048ceaef96687498767e8679dc}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [6/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+history}]{,  }\item[{show\+\_\+history\+\_\+cmd}]{,  }\item[{\char`\"{}show history\char`\"{}}]{,  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Display the session command \textbf{ history\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ vty\+::hindex}, \textbf{ vty\+::hist}, \textbf{ vty\+::index}, \textbf{ VTY\+\_\+\+MAXHIST}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{vty_8c_a880ee794e9a01e02ae24a97cc8947fd5}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [7/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{terminal\+\_\+monitor}]{,  }\item[{terminal\+\_\+monitor\+\_\+cmd}]{,  }\item[{\char`\"{}terminal monitor\char`\"{}}]{,  }\item[{\char`\"{}Set \textbf{ terminal} line \textbf{ parameters\textbackslash{}n}\char`\"{} \char`\"{}Copy debug output to the current \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ vty\+::monitor}.

\mbox{\label{vty_8c_a6e10243d2bd0e6323b33f98591201099}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [8/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{terminal\+\_\+no\+\_\+monitor}]{,  }\item[{terminal\+\_\+no\+\_\+monitor\+\_\+cmd}]{,  }\item[{\char`\"{}terminal no monitor\char`\"{}}]{,  }\item[{\char`\"{}Set \textbf{ terminal} line \textbf{ parameters\textbackslash{}n}\char`\"{} NO\+\_\+\+STR \char`\"{}Copy debug output to the current \textbf{ terminal} \textbf{ line\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ vty\+::monitor}.

\mbox{\label{vty_8c_aaddbc9edf758db7b1a68bc735e20725d}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [9/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{\textbf{ vty\+\_\+bind}}]{,  }\item[{vty\+\_\+bind\+\_\+cmd}]{,  }\item[{\char`\"{}bind A.\+B.\+C.\+D \char`\"{}}]{[$<$ 0-\/65535 $>$],  }\item[{\char`\"{}Accept VTY telnet connections on local \textbf{ interface\textbackslash{}n}\char`\"{} \char`\"{}Local interface IP address (default\+: \char`\"{} VTY\+\_\+\+BIND\+\_\+\+ADDR\+\_\+\+DEFAULT \char`\"{})\textbackslash{}n\char`\"{} \char`\"{}Local TCP port \textbf{ number\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ tall\+\_\+vty\+\_\+ctx}, \textbf{ vty\+\_\+bind\+\_\+addr}, and \textbf{ vty\+\_\+bind\+\_\+port}.

\mbox{\label{vty_8c_a99d93bd0b61c2897b10842489e0d0789}} 
\index{vty.c@{vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!vty.c@{vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [10/10]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{vty\+\_\+login}]{,  }\item[{vty\+\_\+login\+\_\+cmd}]{,  }\item[{\char`\"{}login\char`\"{}}]{,  }\item[{\char`\"{}Enable password \textbf{ checking\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ password\+\_\+check}.

\mbox{\label{vty_8c_ab4c5b4d35be05d627f33cbcc20567a1d}} 
\index{vty.c@{vty.c}!vty\_auth@{vty\_auth}}
\index{vty\_auth@{vty\_auth}!vty.c@{vty.c}}
\doxysubsubsection{vty\_auth()}
{\footnotesize\ttfamily static void vty\+\_\+auth (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ host\+::advanced}, \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ vty\+::buf}, \textbf{ host\+::enable}, \textbf{ host\+::enable\+\_\+encrypt}, \textbf{ ENABLE\+\_\+\+NODE}, \textbf{ host\+::encrypt}, \textbf{ vty\+::fail}, \textbf{ vty\+::node}, \textbf{ host\+::password}, \textbf{ host\+::password\+\_\+encrypt}, \textbf{ vty\+::status}, \textbf{ VIEW\+\_\+\+NODE}, \textbf{ vty\+::\+VTY\+\_\+\+CLOSE}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+execute()}.

\mbox{\label{vty_8c_ae83b887d99a0493283dad484e58d16b8}} 
\index{vty.c@{vty.c}!vty\_backward\_char@{vty\_backward\_char}}
\index{vty\_backward\_char@{vty\_backward\_char}!vty.c@{vty.c}}
\doxysubsubsection{vty\_backward\_char()}
{\footnotesize\ttfamily static void vty\+\_\+backward\+\_\+char (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::cp}, \textbf{ telnet\+\_\+backward\+\_\+char}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+backward\+\_\+pure\+\_\+word()}, \textbf{ vty\+\_\+backward\+\_\+word()}, \textbf{ vty\+\_\+beginning\+\_\+of\+\_\+line()}, \textbf{ vty\+\_\+delete\+\_\+backward\+\_\+char()}, \textbf{ vty\+\_\+escape\+\_\+map()}, \textbf{ vty\+\_\+read()}, and \textbf{ vty\+\_\+transpose\+\_\+chars()}.

\mbox{\label{vty_8c_afd97712a47228ecb91064b09717cc74c}} 
\index{vty.c@{vty.c}!vty\_backward\_kill\_word@{vty\_backward\_kill\_word}}
\index{vty\_backward\_kill\_word@{vty\_backward\_kill\_word}!vty.c@{vty.c}}
\doxysubsubsection{vty\_backward\_kill\_word()}
{\footnotesize\ttfamily static void vty\+\_\+backward\+\_\+kill\+\_\+word (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, and \textbf{ vty\+\_\+delete\+\_\+backward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_ae20b81d43461d23f30a09ec6063f6c82}} 
\index{vty.c@{vty.c}!vty\_backward\_pure\_word@{vty\_backward\_pure\_word}}
\index{vty\_backward\_pure\_word@{vty\_backward\_pure\_word}!vty.c@{vty.c}}
\doxysubsubsection{vty\_backward\_pure\_word()}
{\footnotesize\ttfamily static void vty\+\_\+backward\+\_\+pure\+\_\+word (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, and \textbf{ vty\+\_\+backward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+complete\+\_\+command()}.

\mbox{\label{vty_8c_ac633697855f1c48d8227645f6fbb624e}} 
\index{vty.c@{vty.c}!vty\_backward\_word@{vty\_backward\_word}}
\index{vty\_backward\_word@{vty\_backward\_word}!vty.c@{vty.c}}
\doxysubsubsection{vty\_backward\_word()}
{\footnotesize\ttfamily static void vty\+\_\+backward\+\_\+word (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, and \textbf{ vty\+\_\+backward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_ace10a61328b0a67284a43e26d690e735}} 
\index{vty.c@{vty.c}!vty\_beginning\_of\_line@{vty\_beginning\_of\_line}}
\index{vty\_beginning\_of\_line@{vty\_beginning\_of\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_beginning\_of\_line()}
{\footnotesize\ttfamily static void vty\+\_\+beginning\+\_\+of\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::cp}, and \textbf{ vty\+\_\+backward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+kill\+\_\+line\+\_\+from\+\_\+beginning()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_adfdcfb63a06407c35b1c1221fc523a1e}} 
\index{vty.c@{vty.c}!vty\_buffer\_reset@{vty\_buffer\_reset}}
\index{vty\_buffer\_reset@{vty\_buffer\_reset}!vty.c@{vty.c}}
\doxysubsubsection{vty\_buffer\_reset()}
{\footnotesize\ttfamily static void vty\+\_\+buffer\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ buffer\+\_\+reset()}, \textbf{ vty\+::obuf}, \textbf{ vty\+\_\+prompt()}, and \textbf{ vty\+\_\+redraw\+\_\+line()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a46a8ab71c3c5e63dfe0b7881cfa8f8f8}} 
\index{vty.c@{vty.c}!vty\_clear\_buf@{vty\_clear\_buf}}
\index{vty\_clear\_buf@{vty\_clear\_buf}!vty.c@{vty.c}}
\doxysubsubsection{vty\_clear\_buf()}
{\footnotesize\ttfamily static void vty\+\_\+clear\+\_\+buf (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, and \textbf{ vty\+::max}.



Referenced by \textbf{ vty\+\_\+create()}, \textbf{ vty\+\_\+execute()}, and \textbf{ vty\+\_\+stop\+\_\+input()}.

\mbox{\label{vty_8c_ae492e906f7c461fcddfb7269613dcb66}} 
\index{vty.c@{vty.c}!vty\_clear\_screen@{vty\_clear\_screen}}
\index{vty\_clear\_screen@{vty\_clear\_screen}!vty.c@{vty.c}}
\doxysubsubsection{vty\_clear\_screen()}
{\footnotesize\ttfamily static void vty\+\_\+clear\+\_\+screen (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ telnet\+\_\+escape\+\_\+char}, \textbf{ vty\+\_\+out()}, \textbf{ vty\+\_\+prompt()}, and \textbf{ vty\+\_\+redraw\+\_\+line()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a37ebf42a4f1910701a758b1c02b3a4c0}} 
\index{vty.c@{vty.c}!vty\_command@{vty\_command}}
\index{vty\_command@{vty\_command}!vty.c@{vty.c}}
\doxysubsubsection{vty\_command()}
{\footnotesize\ttfamily static int vty\+\_\+command (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+AMBIGUOUS}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+INCOMPLETE}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+NO\+\_\+\+MATCH}, \textbf{ cmd\+\_\+execute\+\_\+command()}, \textbf{ cmd\+\_\+free\+\_\+strvec()}, \textbf{ cmd\+\_\+make\+\_\+strvec()}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ vty\+::type}, \textbf{ VTY\+\_\+\+FILE}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+execute()}.

\mbox{\label{vty_8c_ad72e0680a6ba30787728859175d70bc8}} 
\index{vty.c@{vty.c}!vty\_complete\_command@{vty\_complete\_command}}
\index{vty\_complete\_command@{vty\_complete\_command}!vty.c@{vty.c}}
\doxysubsubsection{vty\_complete\_command()}
{\footnotesize\ttfamily static void vty\+\_\+complete\+\_\+command (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ vty\+::buf}, \textbf{ cmd\+\_\+complete\+\_\+command()}, \textbf{ CMD\+\_\+\+COMPLETE\+\_\+\+FULL\+\_\+\+MATCH}, \textbf{ CMD\+\_\+\+COMPLETE\+\_\+\+LIST\+\_\+\+MATCH}, \textbf{ CMD\+\_\+\+COMPLETE\+\_\+\+MATCH}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+AMBIGUOUS}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+NO\+\_\+\+MATCH}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+NOTHING\+\_\+\+TODO}, \textbf{ cmd\+\_\+free\+\_\+strvec()}, \textbf{ cmd\+\_\+make\+\_\+strvec()}, \textbf{ vty\+::length}, \textbf{ vty\+::node}, \textbf{ vector\+\_\+only\+\_\+index\+\_\+free()}, \textbf{ vector\+\_\+set()}, \textbf{ vty\+\_\+backward\+\_\+pure\+\_\+word()}, \textbf{ vty\+\_\+insert\+\_\+word\+\_\+overwrite()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, \textbf{ vty\+\_\+prompt()}, \textbf{ vty\+\_\+redraw\+\_\+line()}, and \textbf{ vty\+\_\+self\+\_\+insert()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_af80aee0d6f35fb79eb960743cfa18a1e}} 
\index{vty.c@{vty.c}!vty\_config\_write@{vty\_config\_write}}
\index{vty\_config\_write@{vty\_config\_write}!vty.c@{vty.c}}
\doxysubsubsection{vty\_config\_write()}
{\footnotesize\ttfamily static int vty\+\_\+config\+\_\+write (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ password\+\_\+check}, \textbf{ vty\+\_\+bind\+\_\+addr}, \textbf{ VTY\+\_\+\+BIND\+\_\+\+ADDR\+\_\+\+DEFAULT}, \textbf{ vty\+\_\+bind\+\_\+port}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+init()}.

\mbox{\label{vty_8c_ad96cb2b5ea01585f597cd584553e5ec6}} 
\index{vty.c@{vty.c}!vty\_delete\_backward\_char@{vty\_delete\_backward\_char}}
\index{vty\_delete\_backward\_char@{vty\_delete\_backward\_char}!vty.c@{vty.c}}
\doxysubsubsection{vty\_delete\_backward\_char()}
{\footnotesize\ttfamily static void vty\+\_\+delete\+\_\+backward\+\_\+char (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::cp}, \textbf{ vty\+\_\+backward\+\_\+char()}, and \textbf{ vty\+\_\+delete\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+backward\+\_\+kill\+\_\+word()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a843699a9603df9fec1f79aa648daeeaa}} 
\index{vty.c@{vty.c}!vty\_delete\_char@{vty\_delete\_char}}
\index{vty\_delete\_char@{vty\_delete\_char}!vty.c@{vty.c}}
\doxysubsubsection{vty\_delete\_char()}
{\footnotesize\ttfamily static void vty\+\_\+delete\+\_\+char (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, \textbf{ vty\+::node}, \textbf{ telnet\+\_\+backward\+\_\+char}, \textbf{ telnet\+\_\+space\+\_\+char}, \textbf{ vty\+\_\+down\+\_\+level()}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+delete\+\_\+backward\+\_\+char()}, \textbf{ vty\+\_\+forward\+\_\+kill\+\_\+word()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a39986e2365dcda01161b8497a4a9b83b}} 
\index{vty.c@{vty.c}!vty\_describe\_command@{vty\_describe\_command}}
\index{vty\_describe\_command@{vty\_describe\_command}!vty.c@{vty.c}}
\doxysubsubsection{vty\_describe\_command()}
{\footnotesize\ttfamily static void vty\+\_\+describe\+\_\+command (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ desc\+::cmd}, \textbf{ cmd\+\_\+describe\+\_\+command()}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+AMBIGUOUS}, \textbf{ CMD\+\_\+\+ERR\+\_\+\+NO\+\_\+\+MATCH}, \textbf{ cmd\+\_\+free\+\_\+strvec()}, \textbf{ cmd\+\_\+make\+\_\+strvec()}, \textbf{ len()}, \textbf{ vty\+::length}, \textbf{ desc\+::str}, \textbf{ vector\+\_\+active}, \textbf{ vector\+\_\+free()}, \textbf{ vector\+\_\+init()}, \textbf{ vector\+\_\+set()}, \textbf{ vector\+\_\+slot}, \textbf{ vty\+\_\+describe\+\_\+fold()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, \textbf{ vty\+\_\+prompt()}, \textbf{ vty\+\_\+redraw\+\_\+line()}, and \textbf{ vty\+::width}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a4749fbdd1bd21c94175d6e8e92545528}} 
\index{vty.c@{vty.c}!vty\_describe\_fold@{vty\_describe\_fold}}
\index{vty\_describe\_fold@{vty\_describe\_fold}!vty.c@{vty.c}}
\doxysubsubsection{vty\_describe\_fold()}
{\footnotesize\ttfamily static void vty\+\_\+describe\+\_\+fold (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{int}]{cmd\+\_\+width,  }\item[{unsigned int}]{desc\+\_\+width,  }\item[{struct \textbf{ desc} $\ast$}]{desc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ desc\+::cmd}, \textbf{ desc\+::str}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+describe\+\_\+command()}.

\mbox{\label{vty_8c_ada289c68b5d15981676e822080e04b41}} 
\index{vty.c@{vty.c}!vty\_do\_window\_size@{vty\_do\_window\_size}}
\index{vty\_do\_window\_size@{vty\_do\_window\_size}!vty.c@{vty.c}}
\doxysubsubsection{vty\_do\_window\_size()}
{\footnotesize\ttfamily static void vty\+\_\+do\+\_\+window\+\_\+size (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+create()}.

\mbox{\label{vty_8c_a61ebacd84553a2a9ba1012388c8f0f75}} 
\index{vty.c@{vty.c}!vty\_dont\_linemode@{vty\_dont\_linemode}}
\index{vty\_dont\_linemode@{vty\_dont\_linemode}!vty.c@{vty.c}}
\doxysubsubsection{vty\_dont\_linemode()}
{\footnotesize\ttfamily static void vty\+\_\+dont\+\_\+linemode (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+create()}.

\mbox{\label{vty_8c_a2332d063c4940eabba84a4ff92312f06}} 
\index{vty.c@{vty.c}!vty\_down\_level@{vty\_down\_level}}
\index{vty\_down\_level@{vty\_down\_level}!vty.c@{vty.c}}
\doxysubsubsection{vty\_down\_level()}
{\footnotesize\ttfamily static void vty\+\_\+down\+\_\+level (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ config\+\_\+exit\+\_\+cmd}, \textbf{ CONFIG\+\_\+\+NODE}, \textbf{ vty\+::cp}, \textbf{ cmd\+\_\+element\+::func}, \textbf{ vty\+::node}, \textbf{ vty}, \textbf{ vty\+\_\+go\+\_\+parent()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, and \textbf{ vty\+\_\+prompt()}.



Referenced by \textbf{ vty\+\_\+delete\+\_\+char()}.

\mbox{\label{vty_8c_a763be1552ab8388b9f9467f363d82049}} 
\index{vty.c@{vty.c}!vty\_end\_config@{vty\_end\_config}}
\index{vty\_end\_config@{vty\_end\_config}!vty.c@{vty.c}}
\doxysubsubsection{vty\_end\_config()}
{\footnotesize\ttfamily static void vty\+\_\+end\+\_\+config (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ CFG\+\_\+\+LOG\+\_\+\+NODE}, \textbf{ CONFIG\+\_\+\+NODE}, \textbf{ vty\+::cp}, \textbf{ ENABLE\+\_\+\+NODE}, \textbf{ vty\+::node}, \textbf{ VIEW\+\_\+\+NODE}, \textbf{ vty\+\_\+config\+\_\+unlock()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ VTY\+\_\+\+NODE}, \textbf{ vty\+\_\+out()}, and \textbf{ vty\+\_\+prompt()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a396592bed9a5f245d8607e02b27ae861}} 
\index{vty.c@{vty.c}!vty\_end\_of\_line@{vty\_end\_of\_line}}
\index{vty\_end\_of\_line@{vty\_end\_of\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_end\_of\_line()}
{\footnotesize\ttfamily static void vty\+\_\+end\+\_\+of\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::cp}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+forward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a8609a6dc68804aff15b0d00254a44fa5}} 
\index{vty.c@{vty.c}!vty\_ensure@{vty\_ensure}}
\index{vty\_ensure@{vty\_ensure}!vty.c@{vty.c}}
\doxysubsubsection{vty\_ensure()}
{\footnotesize\ttfamily static void vty\+\_\+ensure (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{int}]{length }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ length}, and \textbf{ vty\+::max}.



Referenced by \textbf{ vty\+\_\+self\+\_\+insert()}, and \textbf{ vty\+\_\+self\+\_\+insert\+\_\+overwrite()}.

\mbox{\label{vty_8c_ab9ea51a34c5694514373852230570eb2}} 
\index{vty.c@{vty.c}!vty\_escape\_map@{vty\_escape\_map}}
\index{vty\_escape\_map@{vty\_escape\_map}!vty.c@{vty.c}}
\doxysubsubsection{vty\_escape\_map()}
{\footnotesize\ttfamily static void vty\+\_\+escape\+\_\+map (\begin{DoxyParamCaption}\item[{unsigned char}]{c,  }\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ c}, \textbf{ vty\+::escape}, \textbf{ vty\+\_\+backward\+\_\+char()}, \textbf{ vty\+\_\+forward\+\_\+char()}, \textbf{ vty\+\_\+next\+\_\+line()}, \textbf{ VTY\+\_\+\+NORMAL}, and \textbf{ vty\+\_\+previous\+\_\+line()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_aaf9ba164ccec77fa93ab502ee8837689}} 
\index{vty.c@{vty.c}!vty\_event@{vty\_event}}
\index{vty\_event@{vty\_event}!vty.c@{vty.c}}
\doxysubsubsection{vty\_event()}
{\footnotesize\ttfamily void vty\+\_\+event (\begin{DoxyParamCaption}\item[{enum \textbf{ event}}]{event,  }\item[{int}]{sock,  }\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})}



callback from core VTY code about VTY related events 



References \textbf{ vty\+\_\+signal\+\_\+data\+::event}, \textbf{ telnet\+\_\+connection\+::fd}, \textbf{ OSMO\+\_\+\+FD\+\_\+\+READ}, \textbf{ OSMO\+\_\+\+FD\+\_\+\+WRITE}, \textbf{ osmo\+\_\+signal\+\_\+dispatch()}, \textbf{ vty\+::priv}, \textbf{ S\+\_\+\+VTY\+\_\+\+EVENT}, \textbf{ vty\+\_\+signal\+\_\+data\+::sock}, \textbf{ SS\+\_\+\+L\+\_\+\+VTY}, \textbf{ telnet\+\_\+close\+\_\+client()}, \textbf{ vty\+::type}, \textbf{ vty\+\_\+signal\+\_\+data\+::vty}, \textbf{ vty}, \textbf{ VTY\+\_\+\+CLOSED}, \textbf{ VTY\+\_\+\+READ}, \textbf{ VTY\+\_\+\+TERM}, \textbf{ VTY\+\_\+\+WRITE}, and \textbf{ osmo\+\_\+fd\+::when}.



Referenced by \textbf{ vty\+\_\+close()}, \textbf{ vty\+\_\+create()}, \textbf{ vty\+\_\+out\+\_\+va()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_ad051d84b39c71fdbd554626c26f2b8a0}} 
\index{vty.c@{vty.c}!vty\_execute@{vty\_execute}}
\index{vty\_execute@{vty\_execute}!vty.c@{vty.c}}
\doxysubsubsection{vty\_execute()}
{\footnotesize\ttfamily static int vty\+\_\+execute (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, \textbf{ vty\+::node}, \textbf{ vty\+::status}, \textbf{ vty\+::type}, \textbf{ vty\+\_\+auth()}, \textbf{ vty\+\_\+clear\+\_\+buf()}, \textbf{ vty\+\_\+command()}, \textbf{ vty\+\_\+hist\+\_\+add()}, \textbf{ vty\+\_\+prompt()}, and \textbf{ VTY\+\_\+\+TERM}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_adb129e2c5ad62108a56cdacddb7f57b8}} 
\index{vty.c@{vty.c}!vty\_forward\_char@{vty\_forward\_char}}
\index{vty\_forward\_char@{vty\_forward\_char}!vty.c@{vty.c}}
\doxysubsubsection{vty\_forward\_char()}
{\footnotesize\ttfamily static void vty\+\_\+forward\+\_\+char (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+end\+\_\+of\+\_\+line()}, \textbf{ vty\+\_\+escape\+\_\+map()}, \textbf{ vty\+\_\+forward\+\_\+word()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a4e12c6d2e92f643659d6c26ff0347aa2}} 
\index{vty.c@{vty.c}!vty\_forward\_kill\_word@{vty\_forward\_kill\_word}}
\index{vty\_forward\_kill\_word@{vty\_forward\_kill\_word}!vty.c@{vty.c}}
\doxysubsubsection{vty\_forward\_kill\_word()}
{\footnotesize\ttfamily static void vty\+\_\+forward\+\_\+kill\+\_\+word (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+delete\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a50635cc5566b2f49e31e01cb168a83d0}} 
\index{vty.c@{vty.c}!vty\_forward\_word@{vty\_forward\_word}}
\index{vty\_forward\_word@{vty\_forward\_word}!vty.c@{vty.c}}
\doxysubsubsection{vty\_forward\_word()}
{\footnotesize\ttfamily static void vty\+\_\+forward\+\_\+word (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+forward\+\_\+char()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a7399bffcb99c9a604913470e51e73603}} 
\index{vty.c@{vty.c}!vty\_hist\_add@{vty\_hist\_add}}
\index{vty\_hist\_add@{vty\_hist\_add}!vty.c@{vty.c}}
\doxysubsubsection{vty\_hist\_add()}
{\footnotesize\ttfamily static void vty\+\_\+hist\+\_\+add (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::hindex}, \textbf{ vty\+::hist}, \textbf{ vty\+::hp}, \textbf{ vty\+::length}, and \textbf{ VTY\+\_\+\+MAXHIST}.



Referenced by \textbf{ vty\+\_\+execute()}.

\mbox{\label{vty_8c_a3e85588eea41b85735677cc6e74ed50a}} 
\index{vty.c@{vty.c}!vty\_history\_print@{vty\_history\_print}}
\index{vty\_history\_print@{vty\_history\_print}!vty.c@{vty.c}}
\doxysubsubsection{vty\_history\_print()}
{\footnotesize\ttfamily static void vty\+\_\+history\+\_\+print (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::hist}, \textbf{ vty\+::hp}, \textbf{ length}, \textbf{ vty\+::length}, \textbf{ vty\+\_\+kill\+\_\+line\+\_\+from\+\_\+beginning()}, and \textbf{ vty\+\_\+redraw\+\_\+line()}.



Referenced by \textbf{ vty\+\_\+next\+\_\+line()}, and \textbf{ vty\+\_\+previous\+\_\+line()}.

\mbox{\label{vty_8c_af8b383a4c3ef289b4aabda0c243d4588}} 
\index{vty.c@{vty.c}!vty\_insert\_word\_overwrite@{vty\_insert\_word\_overwrite}}
\index{vty\_insert\_word\_overwrite@{vty\_insert\_word\_overwrite}!vty.c@{vty.c}}
\doxysubsubsection{vty\_insert\_word\_overwrite()}
{\footnotesize\ttfamily static void vty\+\_\+insert\+\_\+word\+\_\+overwrite (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{char $\ast$}]{str }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ len()}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+complete\+\_\+command()}.

\mbox{\label{vty_8c_a62d806365d5e4914bea1e058eefb895a}} 
\index{vty.c@{vty.c}!vty\_kill\_line@{vty\_kill\_line}}
\index{vty\_kill\_line@{vty\_kill\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_kill\_line()}
{\footnotesize\ttfamily static void vty\+\_\+kill\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, \textbf{ telnet\+\_\+backward\+\_\+char}, \textbf{ telnet\+\_\+space\+\_\+char}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+kill\+\_\+line\+\_\+from\+\_\+beginning()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a5739e6a00dcae7a4fab7540e19454c3e}} 
\index{vty.c@{vty.c}!vty\_kill\_line\_from\_beginning@{vty\_kill\_line\_from\_beginning}}
\index{vty\_kill\_line\_from\_beginning@{vty\_kill\_line\_from\_beginning}!vty.c@{vty.c}}
\doxysubsubsection{vty\_kill\_line\_from\_beginning()}
{\footnotesize\ttfamily static void vty\+\_\+kill\+\_\+line\+\_\+from\+\_\+beginning (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+\_\+beginning\+\_\+of\+\_\+line()}, and \textbf{ vty\+\_\+kill\+\_\+line()}.



Referenced by \textbf{ vty\+\_\+history\+\_\+print()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_ac933bc02bc1fcb0c345e08356a1090cc}} 
\index{vty.c@{vty.c}!vty\_next\_line@{vty\_next\_line}}
\index{vty\_next\_line@{vty\_next\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_next\_line()}
{\footnotesize\ttfamily static void vty\+\_\+next\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::hindex}, \textbf{ vty\+::hist}, \textbf{ vty\+::hp}, \textbf{ vty\+\_\+history\+\_\+print()}, and \textbf{ VTY\+\_\+\+MAXHIST}.



Referenced by \textbf{ vty\+\_\+escape\+\_\+map()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a3725db0ec6ad3ffdd31f68abc807ee34}} 
\index{vty.c@{vty.c}!vty\_out@{vty\_out}}
\index{vty\_out@{vty\_out}!vty.c@{vty.c}}
\doxysubsubsection{vty\_out()}
{\footnotesize\ttfamily int vty\+\_\+out (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{const char $\ast$}]{format,  }\item[{}]{... }\end{DoxyParamCaption})}



VTY standard output function. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em vty} & VTY to which we should print \\
\hline
\mbox{\texttt{ in}}  & {\em format} & variable-\/length format string \\
\hline
\end{DoxyParams}


References \textbf{ vty\+\_\+out\+\_\+va()}.



Referenced by \textbf{ DEFUN()}, \textbf{ vty\+\_\+auth()}, \textbf{ vty\+\_\+clear\+\_\+screen()}, \textbf{ vty\+\_\+command()}, \textbf{ vty\+\_\+complete\+\_\+command()}, \textbf{ vty\+\_\+config\+\_\+write()}, \textbf{ vty\+\_\+create()}, \textbf{ vty\+\_\+describe\+\_\+command()}, \textbf{ vty\+\_\+describe\+\_\+fold()}, \textbf{ vty\+\_\+do\+\_\+window\+\_\+size()}, \textbf{ vty\+\_\+dont\+\_\+linemode()}, \textbf{ vty\+\_\+down\+\_\+level()}, \textbf{ vty\+\_\+end\+\_\+config()}, \textbf{ vty\+\_\+hello()}, \textbf{ vty\+\_\+out\+\_\+uptime()}, \textbf{ vty\+\_\+prompt()}, \textbf{ vty\+\_\+read()}, \textbf{ vty\+\_\+stop\+\_\+input()}, \textbf{ vty\+\_\+telnet\+\_\+option()}, \textbf{ vty\+\_\+will\+\_\+echo()}, and \textbf{ vty\+\_\+will\+\_\+suppress\+\_\+go\+\_\+ahead()}.

\mbox{\label{vty_8c_a8bae6998c5a99c023cf77eab3c4b8ce2}} 
\index{vty.c@{vty.c}!vty\_previous\_line@{vty\_previous\_line}}
\index{vty\_previous\_line@{vty\_previous\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_previous\_line()}
{\footnotesize\ttfamily static void vty\+\_\+previous\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::hist}, \textbf{ vty\+::hp}, \textbf{ vty\+\_\+history\+\_\+print()}, and \textbf{ VTY\+\_\+\+MAXHIST}.



Referenced by \textbf{ vty\+\_\+escape\+\_\+map()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a6fa4b6876bff67f44f37e338ac6dc431}} 
\index{vty.c@{vty.c}!vty\_prompt@{vty\_prompt}}
\index{vty\_prompt@{vty\_prompt}!vty.c@{vty.c}}
\doxysubsubsection{vty\_prompt()}
{\footnotesize\ttfamily static void vty\+\_\+prompt (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ host\+::app\+\_\+info}, \textbf{ cmd\+\_\+prompt()}, \textbf{ vty\+\_\+app\+\_\+info\+::name}, \textbf{ vty\+::node}, \textbf{ vty\+::type}, \textbf{ vty\+\_\+out()}, and \textbf{ VTY\+\_\+\+TERM}.



Referenced by \textbf{ vty\+\_\+buffer\+\_\+reset()}, \textbf{ vty\+\_\+clear\+\_\+screen()}, \textbf{ vty\+\_\+complete\+\_\+command()}, \textbf{ vty\+\_\+create()}, \textbf{ vty\+\_\+describe\+\_\+command()}, \textbf{ vty\+\_\+down\+\_\+level()}, \textbf{ vty\+\_\+end\+\_\+config()}, \textbf{ vty\+\_\+execute()}, and \textbf{ vty\+\_\+stop\+\_\+input()}.

\mbox{\label{vty_8c_aa88c9e2e5da06b826ac13025eefb386b}} 
\index{vty.c@{vty.c}!vty\_redraw\_line@{vty\_redraw\_line}}
\index{vty\_redraw\_line@{vty\_redraw\_line}!vty.c@{vty.c}}
\doxysubsubsection{vty\_redraw\_line()}
{\footnotesize\ttfamily static void vty\+\_\+redraw\+\_\+line (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+buffer\+\_\+reset()}, \textbf{ vty\+\_\+clear\+\_\+screen()}, \textbf{ vty\+\_\+complete\+\_\+command()}, \textbf{ vty\+\_\+describe\+\_\+command()}, and \textbf{ vty\+\_\+history\+\_\+print()}.

\mbox{\label{vty_8c_a773ccf9db9a99a1412fe1c138e01279b}} 
\index{vty.c@{vty.c}!vty\_save\_cwd@{vty\_save\_cwd}}
\index{vty\_save\_cwd@{vty\_save\_cwd}!vty.c@{vty.c}}
\doxysubsubsection{vty\_save\_cwd()}
{\footnotesize\ttfamily static void vty\+\_\+save\+\_\+cwd (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ c}, \textbf{ MAXPATHLEN}, \textbf{ SYSCONFDIR}, \textbf{ tall\+\_\+vty\+\_\+ctx}, and \textbf{ vty\+\_\+cwd}.



Referenced by \textbf{ vty\+\_\+init()}.

\mbox{\label{vty_8c_a4d876e82ce61720dead15aac07e29c30}} 
\index{vty.c@{vty.c}!vty\_self\_insert@{vty\_self\_insert}}
\index{vty\_self\_insert@{vty\_self\_insert}!vty.c@{vty.c}}
\doxysubsubsection{vty\_self\_insert()}
{\footnotesize\ttfamily static void vty\+\_\+self\+\_\+insert (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{char}]{c }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ c}, \textbf{ vty\+::cp}, \textbf{ length}, \textbf{ vty\+::length}, \textbf{ telnet\+\_\+backward\+\_\+char}, \textbf{ vty\+\_\+ensure()}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+complete\+\_\+command()}, and \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a72f07cc8f6c3df4dfe4effaeae9cee9b}} 
\index{vty.c@{vty.c}!vty\_self\_insert\_overwrite@{vty\_self\_insert\_overwrite}}
\index{vty\_self\_insert\_overwrite@{vty\_self\_insert\_overwrite}!vty.c@{vty.c}}
\doxysubsubsection{vty\_self\_insert\_overwrite()}
{\footnotesize\ttfamily static void vty\+\_\+self\+\_\+insert\+\_\+overwrite (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{char}]{c }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ vty\+::buf}, \textbf{ c}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, \textbf{ vty\+::node}, \textbf{ vty\+\_\+ensure()}, and \textbf{ vty\+\_\+write()}.



Referenced by \textbf{ vty\+\_\+transpose\+\_\+chars()}.

\mbox{\label{vty_8c_af1b5a37bcd266695933b5517b0e6d41b}} 
\index{vty.c@{vty.c}!vty\_stop\_input@{vty\_stop\_input}}
\index{vty\_stop\_input@{vty\_stop\_input}!vty.c@{vty.c}}
\doxysubsubsection{vty\_stop\_input()}
{\footnotesize\ttfamily static void vty\+\_\+stop\+\_\+input (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::cp}, \textbf{ vty\+::hindex}, \textbf{ vty\+::hp}, \textbf{ vty\+::length}, \textbf{ vty\+\_\+clear\+\_\+buf()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, and \textbf{ vty\+\_\+prompt()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_ae1bb46143e465cccc7bc8dd177b3464b}} 
\index{vty.c@{vty.c}!vty\_telnet\_option@{vty\_telnet\_option}}
\index{vty\_telnet\_option@{vty\_telnet\_option}!vty.c@{vty.c}}
\doxysubsubsection{vty\_telnet\_option()}
{\footnotesize\ttfamily static int vty\+\_\+telnet\+\_\+option (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{unsigned char $\ast$}]{buf,  }\item[{int}]{nbytes }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::height}, \textbf{ vty\+::iac\+\_\+sb\+\_\+in\+\_\+progress}, \textbf{ vty\+::sb\+\_\+buf}, \textbf{ vty\+::sb\+\_\+len}, \textbf{ TELNET\+\_\+\+NAWS\+\_\+\+SB\+\_\+\+LEN}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, and \textbf{ vty\+::width}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_afd4a3c3a366c9078aa632e04b34e7d2c}} 
\index{vty.c@{vty.c}!vty\_transpose\_chars@{vty\_transpose\_chars}}
\index{vty\_transpose\_chars@{vty\_transpose\_chars}!vty.c@{vty.c}}
\doxysubsubsection{vty\_transpose\_chars()}
{\footnotesize\ttfamily static void vty\+\_\+transpose\+\_\+chars (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+::buf}, \textbf{ vty\+::cp}, \textbf{ vty\+::length}, \textbf{ vty\+\_\+backward\+\_\+char()}, and \textbf{ vty\+\_\+self\+\_\+insert\+\_\+overwrite()}.



Referenced by \textbf{ vty\+\_\+read()}.

\mbox{\label{vty_8c_a90006000348e50410b5a8040b241d411}} 
\index{vty.c@{vty.c}!vty\_will\_echo@{vty\_will\_echo}}
\index{vty\_will\_echo@{vty\_will\_echo}!vty.c@{vty.c}}
\doxysubsubsection{vty\_will\_echo()}
{\footnotesize\ttfamily static void vty\+\_\+will\+\_\+echo (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+create()}.

\mbox{\label{vty_8c_aee3608a98cb407de696ed4595c5b5d8d}} 
\index{vty.c@{vty.c}!vty\_will\_suppress\_go\_ahead@{vty\_will\_suppress\_go\_ahead}}
\index{vty\_will\_suppress\_go\_ahead@{vty\_will\_suppress\_go\_ahead}!vty.c@{vty.c}}
\doxysubsubsection{vty\_will\_suppress\_go\_ahead()}
{\footnotesize\ttfamily static void vty\+\_\+will\+\_\+suppress\+\_\+go\+\_\+ahead (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ vty\+\_\+create()}.

\mbox{\label{vty_8c_acb4496c44dd46b278be6cb92351c4737}} 
\index{vty.c@{vty.c}!vty\_write@{vty\_write}}
\index{vty\_write@{vty\_write}!vty.c@{vty.c}}
\doxysubsubsection{vty\_write()}
{\footnotesize\ttfamily static void vty\+\_\+write (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{const char $\ast$}]{buf,  }\item[{size\+\_\+t}]{nbytes }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ AUTH\+\_\+\+ENABLE\+\_\+\+NODE}, \textbf{ AUTH\+\_\+\+NODE}, \textbf{ buffer\+\_\+put()}, \textbf{ vty\+::node}, and \textbf{ vty\+::obuf}.



Referenced by \textbf{ vty\+\_\+backward\+\_\+char()}, \textbf{ vty\+\_\+delete\+\_\+char()}, \textbf{ vty\+\_\+forward\+\_\+char()}, \textbf{ vty\+\_\+insert\+\_\+word\+\_\+overwrite()}, \textbf{ vty\+\_\+kill\+\_\+line()}, \textbf{ vty\+\_\+redraw\+\_\+line()}, \textbf{ vty\+\_\+self\+\_\+insert()}, and \textbf{ vty\+\_\+self\+\_\+insert\+\_\+overwrite()}.



\doxysubsection{Variable Documentation}
\mbox{\label{vty_8c_ac4c03eedc97079dbe4369f336e3a65ef}} 
\index{vty.c@{vty.c}!password\_check@{password\_check}}
\index{password\_check@{password\_check}!vty.c@{vty.c}}
\doxysubsubsection{password\_check}
{\footnotesize\ttfamily int password\+\_\+check\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ DEFUN()}, \textbf{ vty\+\_\+config\+\_\+write()}, and \textbf{ vty\+\_\+create()}.

\mbox{\label{vty_8c_a050c5269ec6f36e488b05d6b564601e2}} 
\index{vty.c@{vty.c}!telnet\_backward\_char@{telnet\_backward\_char}}
\index{telnet\_backward\_char@{telnet\_backward\_char}!vty.c@{vty.c}}
\doxysubsubsection{telnet\_backward\_char}
{\footnotesize\ttfamily const char telnet\+\_\+backward\+\_\+char = 0x08\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ vty\+\_\+backward\+\_\+char()}, \textbf{ vty\+\_\+delete\+\_\+char()}, \textbf{ vty\+\_\+kill\+\_\+line()}, and \textbf{ vty\+\_\+self\+\_\+insert()}.

\mbox{\label{vty_8c_acbab0a1bb29f4a90f8c0b2c1f68f2a84}} 
\index{vty.c@{vty.c}!telnet\_escape\_char@{telnet\_escape\_char}}
\index{telnet\_escape\_char@{telnet\_escape\_char}!vty.c@{vty.c}}
\doxysubsubsection{telnet\_escape\_char}
{\footnotesize\ttfamily const char telnet\+\_\+escape\+\_\+char = 0x1B\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ vty\+\_\+clear\+\_\+screen()}.

\mbox{\label{vty_8c_a05df3d7f54ae7e630ade2a3124ce48d6}} 
\index{vty.c@{vty.c}!telnet\_space\_char@{telnet\_space\_char}}
\index{telnet\_space\_char@{telnet\_space\_char}!vty.c@{vty.c}}
\doxysubsubsection{telnet\_space\_char}
{\footnotesize\ttfamily const char telnet\+\_\+space\+\_\+char = \textquotesingle{} \textquotesingle{}\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ vty\+\_\+delete\+\_\+char()}, and \textbf{ vty\+\_\+kill\+\_\+line()}.

\mbox{\label{vty_8c_a15307da461b4f04c964fbfad7894f863}} 
\index{vty.c@{vty.c}!vty\_bind\_addr@{vty\_bind\_addr}}
\index{vty\_bind\_addr@{vty\_bind\_addr}!vty.c@{vty.c}}
\doxysubsubsection{vty\_bind\_addr}
{\footnotesize\ttfamily const char$\ast$ vty\+\_\+bind\+\_\+addr = NULL\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ DEFUN()}, \textbf{ vty\+\_\+config\+\_\+write()}, and \textbf{ vty\+\_\+get\+\_\+bind\+\_\+addr()}.

\mbox{\label{vty_8c_a43da5a8ee8d9e8d037cb1025ebdf235a}} 
\index{vty.c@{vty.c}!vty\_bind\_port@{vty\_bind\_port}}
\index{vty\_bind\_port@{vty\_bind\_port}!vty.c@{vty.c}}
\doxysubsubsection{vty\_bind\_port}
{\footnotesize\ttfamily int vty\+\_\+bind\+\_\+port = -\/1\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ DEFUN()}, \textbf{ vty\+\_\+config\+\_\+write()}, and \textbf{ vty\+\_\+get\+\_\+bind\+\_\+port()}.

\mbox{\label{vty_8c_a472109ecd35a2f4a2953e6ca76a5824d}} 
\index{vty.c@{vty.c}!vty\_config@{vty\_config}}
\index{vty\_config@{vty\_config}!vty.c@{vty.c}}
\doxysubsubsection{vty\_config}
{\footnotesize\ttfamily int vty\+\_\+config\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ vty\+\_\+config\+\_\+lock()}, and \textbf{ vty\+\_\+config\+\_\+unlock()}.

\mbox{\label{vty_8c_aa5e6e7a16dd20bf5e749f0d0bd403f33}} 
\index{vty.c@{vty.c}!vty\_cwd@{vty\_cwd}}
\index{vty\_cwd@{vty\_cwd}!vty.c@{vty.c}}
\doxysubsubsection{vty\_cwd}
{\footnotesize\ttfamily char$\ast$ vty\+\_\+cwd = NULL}



Referenced by \textbf{ vty\+\_\+get\+\_\+cwd()}, and \textbf{ vty\+\_\+save\+\_\+cwd()}.

\mbox{\label{vty_8c_a4515b7730ee408bb977cce603b51ce57}} 
\index{vty.c@{vty.c}!vty\_node@{vty\_node}}
\index{vty\_node@{vty\_node}!vty.c@{vty.c}}
\doxysubsubsection{vty\_node}
{\footnotesize\ttfamily struct \textbf{ cmd\+\_\+node} vty\+\_\+node}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        VTY\_NODE,}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}\%s(config-\/line)\# "{}},}
\DoxyCodeLine{        1,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ vty\+\_\+init()}.

\mbox{\label{vty_8c_aada8117b2e5d72dcea3f29da3366ce4b}} 
\index{vty.c@{vty.c}!vtyvec@{vtyvec}}
\index{vtyvec@{vtyvec}!vty.c@{vty.c}}
\doxysubsubsection{vtyvec}
{\footnotesize\ttfamily \textbf{ vector} vtyvec\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ DEFUN()}, \textbf{ vty\+\_\+close()}, \textbf{ vty\+\_\+create()}, \textbf{ vty\+\_\+init()}, \textbf{ vty\+\_\+init\+\_\+vtysh()}, and \textbf{ vty\+\_\+reset()}.

\mbox{\label{vty_8c_a794b894c87fe19a07c303a584f3dd454}} 
\index{vty.c@{vty.c}!Vvty\_serv\_thread@{Vvty\_serv\_thread}}
\index{Vvty\_serv\_thread@{Vvty\_serv\_thread}!vty.c@{vty.c}}
\doxysubsubsection{Vvty\_serv\_thread}
{\footnotesize\ttfamily \textbf{ vector} Vvty\+\_\+serv\+\_\+thread}



Referenced by \textbf{ vty\+\_\+reset()}.

