summaryrefslogtreecommitdiff
path: root/accel-pppd/cli/cli.h
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pppd/cli/cli.h')
-rw-r--r--accel-pppd/cli/cli.h48
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
+