From 59e605944755d5b2af52aebf53b070e0ec110c54 Mon Sep 17 00:00:00 2001 From: Pau Espin Pedrol Date: Thu, 12 Jul 2018 19:39:56 +0200 Subject: ctrl: ctrl_handle_msg: Avoid sending back received ERROR msgs Change-Id: I396fd1e7548beea31b2b7aa9f764edb765b02941 --- src/ctrl/control_if.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/ctrl') diff --git a/src/ctrl/control_if.c b/src/ctrl/control_if.c index d3e6faca..5962f7eb 100644 --- a/src/ctrl/control_if.c +++ b/src/ctrl/control_if.c @@ -384,6 +384,7 @@ close_fd: int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, struct msgb *msg) { struct ctrl_cmd *cmd; + bool parse_failed; struct ipaccess_head *iph; struct ipaccess_head_ext *iph_ext; int result; @@ -407,7 +408,7 @@ int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, stru msg->l2h = iph_ext->data; - cmd = ctrl_cmd_parse2(ccon, msg); + cmd = ctrl_cmd_parse3(ccon, msg, &parse_failed); if (!cmd) { /* should never happen */ @@ -421,7 +422,7 @@ int ctrl_handle_msg(struct ctrl_handle *ctrl, struct ctrl_connection *ccon, stru } /* In case of error, reply with the error message right away. */ - if (cmd->type == CTRL_TYPE_ERROR) + if (cmd->type == CTRL_TYPE_ERROR && parse_failed) goto send_reply; cmd->ccon = ccon; -- cgit v1.2.3