diff options
Diffstat (limited to 'accel-pppd/cli/cli.h')
-rw-r--r-- | accel-pppd/cli/cli.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/accel-pppd/cli/cli.h b/accel-pppd/cli/cli.h new file mode 100644 index 00000000..cdceb2fa --- /dev/null +++ b/accel-pppd/cli/cli.h @@ -0,0 +1,48 @@ +#ifndef __CLI_H +#define __CLI_H + +#include <pcre.h> +#include <list.h> + +#define CLI_CMD_OK 0 +#define CLI_CMD_FAILED -1 +#define CLI_CMD_EXIT -2 +#define CLI_CMD_SYNTAX 1 +#define CLI_CMD_INVAL 2 + +struct cli_simple_cmd_t +{ + struct list_head entry; + int hdr_len; + const char **hdr; + int (*exec)(const char *cmd, char * const *fields, int fields_cnt, void *client); + void (*help)(char * const *fields, int field_cnt, void *client); +}; + +struct cli_regexp_cmd_t +{ + struct list_head entry; + pcre *re; + const char *pattern; + int options; + int (*exec)(const char *cmd, void *client); + int (*help)(char * const *fields, int field_cnt, void *client); +}; + +struct ppp_t; + +void cli_register_simple_cmd(struct cli_simple_cmd_t *cmd); +void cli_register_simple_cmd2( + int (*exec)(const char *cmd, char * const *fields, int fields_cnt, void *client), + void (*help)(char * const *fields, int fields_cnt, void *client), + int hdr_len, + ... + ); +void cli_register_regexp_cmd(struct cli_regexp_cmd_t *cmd); +void cli_show_ses_register(const char *name, const char *desc, void (*print)(const struct ppp_t *ppp, char *buf)); + +int cli_send(void *client, const char *data); +int cli_sendv(void *client, const char *fmt, ...); + +#endif + |