diff options
-rw-r--r-- | include/osmocom/vty/vty.h | 2 | ||||
-rw-r--r-- | src/vty/telnet_interface.c | 10 |
2 files changed, 12 insertions, 0 deletions
diff --git a/include/osmocom/vty/vty.h b/include/osmocom/vty/vty.h index 8d2e1b36..03a29248 100644 --- a/include/osmocom/vty/vty.h +++ b/include/osmocom/vty/vty.h @@ -2,6 +2,7 @@ #include <stdio.h> #include <stdarg.h> +#include <stdbool.h> #include <osmocom/core/linuxlist.h> @@ -192,6 +193,7 @@ void vty_init_vtysh (void); void vty_reset (void); struct vty *vty_new (void); struct vty *vty_create (int vty_sock, void *priv); +bool vty_is_active(struct vty *vty); int vty_out (struct vty *, const char *, ...) VTY_PRINTF_ATTRIBUTE(2, 3); int vty_out_va(struct vty *vty, const char *format, va_list ap); int vty_out_newline(struct vty *); diff --git a/src/vty/telnet_interface.c b/src/vty/telnet_interface.c index dc23b12a..a1fc9990 100644 --- a/src/vty/telnet_interface.c +++ b/src/vty/telnet_interface.c @@ -197,6 +197,16 @@ static int telnet_new_connection(struct osmo_fd *fd, unsigned int what) return 0; } +bool vty_is_active(struct vty *vty) +{ + struct telnet_connection *connection; + llist_for_each_entry(connection, &active_connections, entry) { + if (connection->vty == vty) + return true; + } + return false; +} + /*! callback from core VTY code about VTY related events */ void vty_event(enum event event, int sock, struct vty *vty) { |