summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/vty/vty.h2
-rw-r--r--src/vty/telnet_interface.c10
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)
{