summaryrefslogtreecommitdiff
path: root/accel-pptpd/cli/cli.h
diff options
context:
space:
mode:
Diffstat (limited to 'accel-pptpd/cli/cli.h')
-rw-r--r--accel-pptpd/cli/cli.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/accel-pptpd/cli/cli.h b/accel-pptpd/cli/cli.h
new file mode 100644
index 00000000..aec62fd3
--- /dev/null
+++ b/accel-pptpd/cli/cli.h
@@ -0,0 +1,37 @@
+#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
+
+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);
+ int (*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);
+};
+
+void cli_register_simple_cmd(struct cli_simple_cmd_t *cmd);
+void cli_register_regexp_cmd(struct cli_regexp_cmd_t *cmd);
+
+int cli_send(void *client, const char *data);
+
+#endif
+