From ee63d7d15e14ca0b653086043e7a6d1d537a89a1 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Thu, 10 Feb 2011 12:39:05 +0100 Subject: [PATCH] stp: Allow/Disallow to inject messages on the UDP/M2UA interface --- include/bsc_data.h | 1 + src/main_stp.c | 5 +++++ src/vty_interface.c | 9 ++++++++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/bsc_data.h b/include/bsc_data.h index 1009d46..b0dc6f8 100644 --- a/include/bsc_data.h +++ b/include/bsc_data.h @@ -136,6 +136,7 @@ struct bsc_data { int forward_only; /* inject */ + int allow_inject; struct bsc_fd inject_fd; struct llist_head inject_list; }; diff --git a/src/main_stp.c b/src/main_stp.c index 57f509f..6e8752e 100644 --- a/src/main_stp.c +++ b/src/main_stp.c @@ -206,6 +206,11 @@ static int inject_read_cb(struct bsc_fd *fd, unsigned int what) return -1; } + if (!bsc->allow_inject) { + LOGP(DINP, LOGL_ERROR, "Injecting messages is not allowed.\n"); + return -1; + } + m2ua = m2ua_from_msg(rc, buf); if (!m2ua) { LOGP(DINP, LOGL_ERROR, "Failed to parse M2UA.\n"); diff --git a/src/vty_interface.c b/src/vty_interface.c index 95210e3..f90780d 100644 --- a/src/vty_interface.c +++ b/src/vty_interface.c @@ -516,7 +516,13 @@ DEFUN(lnk_reset, lnk_reset_cmd, return CMD_SUCCESS; } - +DEFUN(allow_inject, allow_inject_cmd, + "allow-inject (0|1)", + "Allow to inject messages\n" "Disable\n" "Enable\n") +{ + bsc.allow_inject = atoi(argv[0]); + return CMD_SUCCESS; +} void cell_vty_init(void) { @@ -556,6 +562,7 @@ void cell_vty_init(void) install_element(ENABLE_NODE, &lnk_block_cmd); install_element(ENABLE_NODE, &lnk_unblock_cmd); install_element(ENABLE_NODE, &lnk_reset_cmd); + install_element(ENABLE_NODE, &allow_inject_cmd); /* show commands */ install_element_ve(&show_stats_cmd);