diff options
author | Harald Welte <laforge@gnumonks.org> | 2010-05-19 19:45:32 +0200 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2010-05-25 23:40:38 +0200 |
commit | 4b037e4117c0c1e02a516c8b3374444f438c70e1 (patch) | |
tree | c2c02920c333c33f728b4d3dbe63a45635b1b61b /openbsc/include/vty/vty.h | |
parent | 4f1e81543abea8cfb6b55c09e342831863d7a134 (diff) |
Migrate VTY code to libosmovty
Diffstat (limited to 'openbsc/include/vty/vty.h')
-rw-r--r-- | openbsc/include/vty/vty.h | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/openbsc/include/vty/vty.h b/openbsc/include/vty/vty.h deleted file mode 100644 index f82ada1cc..000000000 --- a/openbsc/include/vty/vty.h +++ /dev/null @@ -1,151 +0,0 @@ -#ifndef _VTY_H -#define _VTY_H - -#include <stdio.h> -#include <stdarg.h> - -/* GCC have printf type attribute check. */ -#ifdef __GNUC__ -#define VTY_PRINTF_ATTRIBUTE(a,b) __attribute__ ((__format__ (__printf__, a, b))) -#else -#define VTY_PRINTF_ATTRIBUTE(a,b) -#endif /* __GNUC__ */ - -/* Does the I/O error indicate that the operation should be retried later? */ -#define ERRNO_IO_RETRY(EN) \ - (((EN) == EAGAIN) || ((EN) == EWOULDBLOCK) || ((EN) == EINTR)) - -/* Vty read buffer size. */ -#define VTY_READ_BUFSIZ 512 - -#define VTY_BUFSIZ 512 -#define VTY_MAXHIST 20 - -/* Vty events */ -enum event { - VTY_SERV, - VTY_READ, - VTY_WRITE, - VTY_CLOSED, - VTY_TIMEOUT_RESET, -#ifdef VTYSH - VTYSH_SERV, - VTYSH_READ, - VTYSH_WRITE -#endif /* VTYSH */ -}; - -struct vty { - FILE *file; - - /* private data, specified by creator */ - void *priv; - - /* File descripter of this vty. */ - int fd; - - /* Is this vty connect to file or not */ - enum { VTY_TERM, VTY_FILE, VTY_SHELL, VTY_SHELL_SERV } type; - - /* Node status of this vty */ - int node; - - /* Failure count */ - int fail; - - /* Output buffer. */ - struct buffer *obuf; - - /* Command input buffer */ - char *buf; - - /* Command cursor point */ - int cp; - - /* Command length */ - int length; - - /* Command max length. */ - int max; - - /* Histry of command */ - char *hist[VTY_MAXHIST]; - - /* History lookup current point */ - int hp; - - /* History insert end point */ - int hindex; - - /* For current referencing point of interface, route-map, - access-list etc... */ - void *index; - - /* For multiple level index treatment such as key chain and key. */ - void *index_sub; - - /* For escape character. */ - unsigned char escape; - - /* Current vty status. */ - enum { VTY_NORMAL, VTY_CLOSE, VTY_MORE, VTY_MORELINE } status; - - /* IAC handling: was the last character received the IAC - * (interpret-as-command) escape character (and therefore the next - * character will be the command code)? Refer to Telnet RFC 854. */ - unsigned char iac; - - /* IAC SB (option subnegotiation) handling */ - unsigned char iac_sb_in_progress; - /* At the moment, we care only about the NAWS (window size) negotiation, - * and that requires just a 5-character buffer (RFC 1073): - * <NAWS char> <16-bit width> <16-bit height> */ -#define TELNET_NAWS_SB_LEN 5 - unsigned char sb_buf[TELNET_NAWS_SB_LEN]; - /* How many subnegotiation characters have we received? We just drop - * those that do not fit in the buffer. */ - size_t sb_len; - - /* Window width/height. */ - int width; - int height; - - /* Configure lines. */ - int lines; - - int monitor; - - /* In configure mode. */ - int config; -}; - -/* Small macro to determine newline is newline only or linefeed needed. */ -#define VTY_NEWLINE ((vty->type == VTY_TERM) ? "\r\n" : "\n") - -static inline char *vty_newline(struct vty *vty) -{ - return VTY_NEWLINE; -} - -/* Prototypes. */ -void vty_init(const char *name, const char *version, const char *copyright); -int vty_read_config_file(const char *file_name, void *priv); -void vty_init_vtysh (void); -void vty_reset (void); -struct vty *vty_new (void); -struct vty *vty_create (int vty_sock, void *priv); -int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); -int vty_out_newline(struct vty *); -int vty_read(struct vty *vty); -//void vty_time_print (struct vty *, int); -void vty_close (struct 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 *); -int vty_config_unlock (struct vty *); -int vty_shell (struct vty *); -int vty_shell_serv (struct vty *); -void vty_hello (struct vty *); - -void *tall_vty_ctx; -#endif |