boot_serial: Respond with rc code for all mcumgr commands
The commit replaces bs_emtpy_rsp with bs_rc_rsp that responds with
mcumgr rc code after completing command or with MGMT_ERR_ENOTSUP,
when command is not supported.
Signed-off-by: Dominik Ermel <dominik.ermel@nordicsemi.no>
diff --git a/boot/boot_serial/src/boot_serial.c b/boot/boot_serial/src/boot_serial.c
index 914167e..69551e5 100644
--- a/boot/boot_serial/src/boot_serial.c
+++ b/boot/boot_serial/src/boot_serial.c
@@ -444,14 +444,14 @@
}
/*
- * Console echo control/image erase. Send empty response, don't do anything.
+ * Send rc code only.
*/
static void
-bs_empty_rsp(char *buf, int len)
+bs_rc_rsp(int rc_code)
{
map_start_encode(&cbor_state, 10);
tstrx_put(&cbor_state, "rc");
- uintx32_put(&cbor_state, 0);
+ uintx32_put(&cbor_state, rc_code);
map_end_encode(&cbor_state, 10);
boot_serial_output();
}
@@ -463,7 +463,7 @@
static void
bs_reset(char *buf, int len)
{
- bs_empty_rsp(buf, len);
+ bs_rc_rsp(0);
#ifdef __ZEPHYR__
#ifdef CONFIG_MULTITHREADING
@@ -515,24 +515,27 @@
bs_upload(buf, len);
break;
default:
- bs_empty_rsp(buf, len);
+ bs_rc_rsp(MGMT_ERR_ENOTSUP);
break;
}
} else if (hdr->nh_group == MGMT_GROUP_ID_DEFAULT) {
switch (hdr->nh_id) {
case NMGR_ID_CONS_ECHO_CTRL:
- bs_empty_rsp(buf, len);
+ bs_rc_rsp(0);
break;
case NMGR_ID_RESET:
bs_reset(buf, len);
break;
default:
+ bs_rc_rsp(MGMT_ERR_ENOTSUP);
break;
}
} else if (MCUBOOT_PERUSER_MGMT_GROUP_ENABLED == 1) {
if (bs_peruser_system_specific(hdr, buf, len, &cbor_state) == 0) {
boot_serial_output();
}
+ } else {
+ bs_rc_rsp(MGMT_ERR_ENOTSUP);
}
}