aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-02-10 12:39:05 +0100
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-02-10 20:09:08 +0100
commitee63d7d15e14ca0b653086043e7a6d1d537a89a1 (patch)
treeb9d15cd910344e91caba6c2b001136ae6e2c31c8
parent0452f22a21d71094b3c740485e54e210f94f0465 (diff)
stp: Allow/Disallow to inject messages on the UDP/M2UA interface
-rw-r--r--include/bsc_data.h1
-rw-r--r--src/main_stp.c5
-rw-r--r--src/vty_interface.c9
3 files changed, 14 insertions, 1 deletions
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);