|
version 1.6.2.2, 2013/08/12 09:33:50
|
version 1.14.4.1, 2025/12/21 22:36:19
|
|
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 - 2025 |
| 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 247 typedef struct {
|
Line 250 typedef struct {
|
| int line_out; |
int line_out; |
| } linebuffer_t; |
} linebuffer_t; |
| |
|
| |
#ifdef __cplusplus |
| |
extern "C" { |
| |
#endif |
| |
|
| /* Error support functions */ |
/* Error support functions */ |
| |
|
|
Line 342 unsigned int cli_telnet_GetCmd(struct telnetAttrs *att
|
Line 348 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 385 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 409 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 424 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 434 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 523 void cliEnd(linebuffer_t * __restrict cli_buffer);
|
Line 529 void cliEnd(linebuffer_t * __restrict cli_buffer);
|
| linebuffer_t *cliInit(int fin, int fout, const char *prompt); |
linebuffer_t *cliInit(int fin, int fout, const char *prompt); |
| |
|
| /* |
/* |
| * cliInitLine() - Init CLI input line terminal | * cliSetLine() - Set CLI input line terminal |
| * |
* |
| * @cli_buffer = CLI buffer |
* @cli_buffer = CLI buffer |
| * return: none | * @old = Old terminal settings |
| | * return: -1 error or 0 ok |
| */ |
*/ |
| int cliInitLine(linebuffer_t * __restrict cli_buffer); | int cliSetLine(linebuffer_t * __restrict cli_buffer, struct termios * __restrict old); |
| /* |
/* |
| |
* cliResetLine() - Reset CLI input line terminal |
| |
* |
| |
* @cli_buffer = CLI buffer |
| |
* @old = Original terminal settings |
| |
* return: -1 error or 0 ok |
| |
*/ |
| |
int cliResetLine(linebuffer_t * __restrict cli_buffer, struct termios * __restrict orig); |
| |
/* |
| |
* cliEcho() - Switch echo on or off |
| |
* |
| |
* @cli_buffer = CLI buffer |
| |
* @on = On or off for echo on input handler |
| |
* return: -1 error or 0 ok |
| |
*/ |
| |
int cliEcho(linebuffer_t * __restrict cli_buffer, int on); |
| |
/* |
| * 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) |
| |
|
| |
#ifdef __cplusplus |
| |
} |
| |
#endif |
| |
|
| #endif |
#endif |