version 1.7, 2013/08/12 09:50:28
|
version 1.12, 2020/09/01 23:19:54
|
Line 12 terms:
|
Line 12 terms:
|
All of the documentation and software included in the ELWIX and AITNET |
All of the documentation and software included in the ELWIX and AITNET |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
Releases is copyrighted by ELWIX - Sofia/Bulgaria <info@elwix.org> |
|
|
Copyright 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 | Copyright 2004 - 2020 |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
by Michael Pounov <misho@elwix.org>. All rights reserved. |
|
|
Redistribution and use in source and binary forms, with or without |
Redistribution and use in source and binary forms, with or without |
Line 205 typedef struct {
|
Line 205 typedef struct {
|
|
|
/* Commands structure for CLI */ |
/* Commands structure for CLI */ |
|
|
|
#define CLI_CMD_DEFINE(x) int (x)(void *, int, char **) |
typedef int (*cmd_func_t)(/*linebuffer_t **/ void * __restrict cli_buffer, int idx, |
typedef int (*cmd_func_t)(/*linebuffer_t **/ void * __restrict cli_buffer, int idx, |
char ** __restrict args); |
char ** __restrict args); |
struct tagCommand { |
struct tagCommand { |
Line 226 typedef SLIST_HEAD(slCommandHead, tagCommand) commands
|
Line 227 typedef SLIST_HEAD(slCommandHead, tagCommand) commands
|
/* Main structure, Buffer for CLI work with thread models ;-) special designed by M.Punov */ |
/* Main structure, Buffer for CLI work with thread models ;-) special designed by M.Punov */ |
|
|
typedef struct { |
typedef struct { |
|
int line_kill; |
char line_mode; |
char line_mode; |
|
|
|
char line_porigin[STRSIZ]; |
char *line_prompt; |
char *line_prompt; |
|
|
int line_bol; |
int line_bol; |
Line 342 unsigned int cli_telnet_GetCmd(struct telnetAttrs *att
|
Line 345 unsigned int cli_telnet_GetCmd(struct telnetAttrs *att
|
* |
* |
* @attr = input attribute |
* @attr = input attribute |
* @cmd = command |
* @cmd = command |
* @opt = option, if 0xff not specified | * @optz = option, if 0xff not specified |
* @arg1 = sub-option code, if 0xff not specified |
* @arg1 = sub-option code, if 0xff not specified |
* @arg2 = sub-option data, if NULL not specified |
* @arg2 = sub-option data, if NULL not specified |
* @arg3 = sub-option data size, if 0 not specified data |
* @arg3 = sub-option data size, if 0 not specified data |
* return: -1 can`t set command; !=-1 ok |
* return: -1 can`t set command; !=-1 ok |
*/ |
*/ |
int cli_telnet_SetCmd(struct telnetAttrs *attr, unsigned char cmd, unsigned char opt, ...); | int cli_telnet_SetCmd(struct telnetAttrs *attr, unsigned char cmd, int optz, ...); |
|
|
/* |
/* |
* cli_telnet_Answer() - Automatic generate commands answer to send from telnet |
* cli_telnet_Answer() - Automatic generate commands answer to send from telnet |
Line 379 int cli_telnet_Answer(unsigned char *caps, int nCaps,
|
Line 382 int cli_telnet_Answer(unsigned char *caps, int nCaps,
|
* cli_Cmd_Unsupported() - Builtin helper function for unsupported commands |
* cli_Cmd_Unsupported() - Builtin helper function for unsupported commands |
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @idx = Selected command ID | * @idx = Config level |
* @args = Parsed arguments array |
* @args = Parsed arguments array |
* return: RETCODE_OK ok |
* return: RETCODE_OK ok |
*/ |
*/ |
Line 403 int cli_BindKey(bindkey_t * __restrict key, linebuffer
|
Line 406 int cli_BindKey(bindkey_t * __restrict key, linebuffer
|
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @csCmd = Command name |
* @csCmd = Command name |
* @cliLevel = Level in CLI, -1 unprivi(view from all), 0 main config, 1 sub config ... | * @cliLevel = Level in CLI, -1 view from all levels, 0 hidden, >0 mask levels |
* @funcCmd = Callback function when user call command |
* @funcCmd = Callback function when user call command |
* @csInfo = Inline information for command |
* @csInfo = Inline information for command |
* @csHelp = Help line when call help |
* @csHelp = Help line when call help |
Line 418 cli_addCommand(linebuffer_t * __restrict cli_buffer, c
|
Line 421 cli_addCommand(linebuffer_t * __restrict cli_buffer, c
|
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @csCmd = Command name |
* @csCmd = Command name |
* @cliLevel = Level in CLI, -1 unprivi(view from all), 0 main config, 1 sub config ... | * @cliLevel = Level in CLI, -1 view from all levels, 0 hidden, >0 mask levels |
* return: RETCODE_ERR error, RETCODE_OK ok |
* return: RETCODE_ERR error, RETCODE_OK ok |
*/ |
*/ |
int |
int |
Line 428 cli_delCommand(linebuffer_t * __restrict cli_buffer, c
|
Line 431 cli_delCommand(linebuffer_t * __restrict cli_buffer, c
|
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @csCmd = Command name |
* @csCmd = Command name |
* @cliLevel = Level in CLI, -1 unprivi(view from all), 0 main config, 1 sub config ... | * @cliLevel = Level in CLI, -1 view from all levels, 0 hidden, >0 mask levels |
* @funcCmd = Callback function when user call command |
* @funcCmd = Callback function when user call command |
* @csInfo = Inline information for command |
* @csInfo = Inline information for command |
* @csHelp = Help line when call help |
* @csHelp = Help line when call help |
Line 533 int cliInitLine(linebuffer_t * __restrict cli_buffer);
|
Line 536 int cliInitLine(linebuffer_t * __restrict cli_buffer);
|
* cliReadLine() - Read line from opened CLI session |
* cliReadLine() - Read line from opened CLI session |
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
|
* @timeout = Session timeout (-1 infinit) |
* return: NULL if error or !=NULL readed line, must be e_free after use! |
* return: NULL if error or !=NULL readed line, must be e_free after use! |
*/ |
*/ |
char *cliReadLine(linebuffer_t * __restrict cli_buffer); | char *cliReadLine(linebuffer_t * __restrict cli_buffer, int timeout); |
|
|
/* |
/* |
|
* cliRun() - CLI run command line |
|
* |
|
* @cli_buffer = CLI buffer |
|
* @psInput = Input command line |
|
* @prompt = Display prompt after command |
|
* return: RETCODE_ERR error, RETCODE_OK ok |
|
*/ |
|
int cliRun(linebuffer_t * __restrict cli_buffer, char *psInput, int prompt); |
|
|
|
/* |
* cliLoop() - CLI main loop |
* cliLoop() - CLI main loop |
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @csHistFile = History file name |
* @csHistFile = History file name |
|
* @timeout = Session timeout (-1 infinit) |
* return: RETCODE_ERR error, RETCODE_OK ok |
* return: RETCODE_ERR error, RETCODE_OK ok |
*/ |
*/ |
int cliLoop(linebuffer_t * __restrict cli_buffer, const char *csHistFile); | int cliLoop(linebuffer_t * __restrict cli_buffer, const char *csHistFile, int timeout); |
/* |
/* |
* cliNetLoop() - CLI network main loop binded to socket |
* cliNetLoop() - CLI network main loop binded to socket |
* |
* |
* @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
* @csHistFile = History file name |
* @csHistFile = History file name |
* @sock = client socket |
* @sock = client socket |
* @term = stdin termios | * @timeout = Session timeout (-1 infinit) |
* @win = window size of tty | |
* return: RETCODE_ERR error, RETCODE_OK ok |
* return: RETCODE_ERR error, RETCODE_OK ok |
*/ |
*/ |
int cliNetLoop(linebuffer_t * __restrict cli_buffer, const char *csHistFile, int sock); | int cliNetLoop(linebuffer_t * __restrict cli_buffer, const char *csHistFile, |
| int sock, int timeout); |
| #define cliKillLoop(_x) (assert((_x)), (_x)->line_kill = 1) |
|
|
|
|
#endif |
#endif |