summaryrefslogtreecommitdiffstats
path: root/src/client/client.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/client.h')
-rw-r--r--src/client/client.h148
1 files changed, 148 insertions, 0 deletions
diff --git a/src/client/client.h b/src/client/client.h
new file mode 100644
index 0000000..04fca94
--- /dev/null
+++ b/src/client/client.h
@@ -0,0 +1,148 @@
+/* -*- mode: c; c-file-style: "openbsd" -*- */
+/*
+ * Copyright (c) 2012 Vincent Bernat <bernat@luffy.cx>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _CLIENT_H
+#define _CLIENT_H
+
+#if HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include "../lib/lldpctl.h"
+#include "../lldp-const.h"
+#include "../log.h"
+#include "../ctl.h"
+#include "../compat/compat.h"
+#include "writer.h"
+
+#ifdef HAVE_ADDRESS_SANITIZER
+# include <sanitizer/lsan_interface.h>
+# define SUPPRESS_LEAK(x) __lsan_ignore_object(x)
+#else
+# define SUPPRESS_LEAK(x)
+#endif
+
+/* Readline stuff */
+#ifdef HAVE_LIBREADLINE
+# if defined(HAVE_READLINE_READLINE_H)
+# include <readline/readline.h>
+# elif defined(HAVE_READLINE_H)
+# include <readline.h>
+# else
+extern char *readline();
+extern char *rl_line_buffer;
+extern int rl_point;
+extern int rl_insert_text(const char *);
+extern void rl_forced_update_display(void);
+extern int rl_bind_key(int, int (*f)(int, int));
+# endif
+#endif
+#ifdef HAVE_READLINE_HISTORY
+# if defined(HAVE_READLINE_HISTORY_H)
+# include <readline/history.h>
+# elif defined(HAVE_HISTORY_H)
+# include <history.h>
+# else
+extern void add_history();
+# endif
+#endif
+#undef NEWLINE
+
+extern const char *ctlname;
+
+/* commands.c */
+#define NEWLINE "<CR>"
+struct cmd_node;
+struct cmd_env;
+struct cmd_node *commands_root(void);
+struct cmd_node *commands_new(struct cmd_node *, const char *, const char *,
+ int (*validate)(struct cmd_env *, const void *),
+ int (*execute)(struct lldpctl_conn_t *, struct writer *, struct cmd_env *,
+ const void *),
+ const void *);
+struct cmd_node *commands_privileged(struct cmd_node *);
+struct cmd_node *commands_lock(struct cmd_node *);
+struct cmd_node *commands_hidden(struct cmd_node *);
+void commands_free(struct cmd_node *);
+const char *cmdenv_arg(struct cmd_env *);
+const char *cmdenv_get(struct cmd_env *, const char *);
+int cmdenv_put(struct cmd_env *, const char *, const char *);
+int cmdenv_pop(struct cmd_env *, int);
+int commands_execute(struct lldpctl_conn_t *, struct writer *, struct cmd_node *, int,
+ const char **, int);
+char *commands_complete(struct cmd_node *, int, const char **, int, int);
+/* helpers */
+int cmd_check_no_env(struct cmd_env *, const void *);
+int cmd_check_env(struct cmd_env *, const void *);
+int cmd_store_env(struct lldpctl_conn_t *, struct writer *, struct cmd_env *,
+ const void *);
+int cmd_store_env_and_pop(struct lldpctl_conn_t *, struct writer *, struct cmd_env *,
+ const void *);
+int cmd_store_env_value(struct lldpctl_conn_t *, struct writer *, struct cmd_env *,
+ const void *);
+int cmd_store_env_value_and_pop(struct lldpctl_conn_t *, struct writer *,
+ struct cmd_env *, const void *);
+int cmd_store_env_value_and_pop2(struct lldpctl_conn_t *, struct writer *,
+ struct cmd_env *, const void *);
+int cmd_store_env_value_and_pop3(struct lldpctl_conn_t *, struct writer *,
+ struct cmd_env *, const void *);
+int cmd_store_something_env_value_and_pop2(const char *, struct cmd_env *,
+ const void *);
+int cmd_store_something_env_value(const char *, struct cmd_env *, const void *);
+lldpctl_atom_t *cmd_iterate_on_interfaces(struct lldpctl_conn_t *, struct cmd_env *);
+lldpctl_atom_t *cmd_iterate_on_ports(struct lldpctl_conn_t *, struct cmd_env *,
+ const char **);
+void cmd_restrict_ports(struct cmd_node *);
+void cmd_restrict_protocol(struct cmd_node *);
+
+/* misc.c */
+int contains(const char *, const char *);
+const char *totag(const char *);
+
+/* display.c */
+#define DISPLAY_BRIEF 1
+#define DISPLAY_NORMAL 2
+#define DISPLAY_DETAILS 3
+void display_interfaces(lldpctl_conn_t *, struct writer *, struct cmd_env *, int, int);
+void display_interface(lldpctl_conn_t *, struct writer *, int, lldpctl_atom_t *,
+ lldpctl_atom_t *, int, int);
+void display_local_chassis(lldpctl_conn_t *, struct writer *, struct cmd_env *, int);
+void display_configuration(lldpctl_conn_t *, struct writer *);
+void display_interfaces_stats(lldpctl_conn_t *, struct writer *, struct cmd_env *);
+void display_interface_stats(lldpctl_conn_t *, struct writer *, lldpctl_atom_t *);
+void display_local_interfaces(lldpctl_conn_t *, struct writer *, struct cmd_env *, int,
+ int);
+
+/* show.c */
+void register_commands_show(struct cmd_node *);
+void register_commands_watch(struct cmd_node *);
+
+/* conf*.c */
+void register_commands_configure(struct cmd_node *);
+void register_commands_configure_system(struct cmd_node *, struct cmd_node *);
+void register_commands_configure_lldp(struct cmd_node *, struct cmd_node *);
+void register_commands_configure_med(struct cmd_node *, struct cmd_node *);
+void register_commands_configure_inventory(struct cmd_node *, struct cmd_node *);
+void register_commands_configure_dot3(struct cmd_node *);
+void register_commands_medpow(struct cmd_node *);
+void register_commands_dot3pow(struct cmd_node *);
+
+/* tokenizer.c */
+int tokenize_line(const char *, int *, char ***);
+void tokenize_free(int, char **);
+
+#endif