Diff for /libaitcli/inc/aitcli.h between versions 1.7 and 1.13

version 1.7, 2013/08/12 09:50:28 version 1.13, 2022/10/17 22:04:24
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, 2013Copyright 2004 - 2022
         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 523  void cliEnd(linebuffer_t * __restrict cli_buffer); Line 526  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);
   /*
  * 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

Removed from v.1.7  
changed lines
  Added in v.1.13


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>