Merge pull request #38 from vrahane/log_error_codes_backwards_compatibility
log_mgmt: Seperate out log_mgmt errors
diff --git a/cmd/log_mgmt/include/log_mgmt/log_mgmt.h b/cmd/log_mgmt/include/log_mgmt/log_mgmt.h
index 1ef8efc..6d046cd 100644
--- a/cmd/log_mgmt/include/log_mgmt/log_mgmt.h
+++ b/cmd/log_mgmt/include/log_mgmt/log_mgmt.h
@@ -27,6 +27,22 @@
#include "log_mgmt_config.h"
/**
+ * LOG MGMT specific error codes, 0 -> 6, 8 are same as mcumgr,
+ * 7 and 9 are different for backwards compatibility with newtmgr.
+ */
+#define LOG_MGMT_ERR_EOK (0)
+#define LOG_MGMT_ERR_EUNKNOWN (1)
+#define LOG_MGMT_ERR_ENOMEM (2)
+#define LOG_MGMT_ERR_EINVAL (3)
+#define LOG_MGMT_ERR_ETIMEOUT (4)
+#define LOG_MGMT_ERR_ENOENT (5)
+#define LOG_MGMT_ERR_EBADSTATE (6) /* Current state disallows command. */
+#define LOG_MGMT_ERR_ECORRUPT (7)
+#define LOG_MGMT_ERR_ENOTSUP (8)
+#define LOG_MGMT_ERR_EMSGSIZE (9)
+#define LOG_MGMT_ERR_EPERUSER (256)
+
+/**
* Command IDs for log management group.
*/
#define LOG_MGMT_ID_SHOW 0
diff --git a/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c b/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
index c59268d..596f14d 100644
--- a/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
+++ b/cmd/log_mgmt/port/mynewt/src/mynewt_log_mgmt.c
@@ -58,13 +58,13 @@
for (i = 0; i <= index; i++) {
tmplog = log_list_get_next(tmplog);
if (tmplog == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
}
return log_set_watermark(tmplog, index);
#else
- return MGMT_ERR_ENOTSUP;
+ return LOG_MGMT_ERR_ENOTSUP;
#endif
}
@@ -78,7 +78,7 @@
for (i = 0; i <= idx; i++) {
log = log_list_get_next(log);
if (log == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
}
@@ -97,7 +97,7 @@
name = LOG_MODULE_STR(idx);
if (name == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
} else {
*out_module_name = name;
return 0;
@@ -111,7 +111,7 @@
name = LOG_LEVEL_STR(idx);
if (name == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
} else {
*out_level_name = name;
return 0;
@@ -189,7 +189,7 @@
rc = log_read_body(log, dptr, mynewt_log_mgmt_walk_arg->chunk, offset,
read_len);
if (rc < 0) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
rc = mynewt_log_mgmt_walk_arg->cb(&entry, mynewt_log_mgmt_walk_arg->arg);
if (rc) {
@@ -216,7 +216,7 @@
log = mynewt_log_mgmt_find_log(log_name);
if (log == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
if (strcmp(log->l_name, log_name) == 0) {
@@ -228,7 +228,7 @@
return log_walk_body(log, mynewt_log_mgmt_walk_cb, &offset);
}
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
int
@@ -239,12 +239,12 @@
log = mynewt_log_mgmt_find_log(log_name);
if (log == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
rc = log_flush(log);
if (rc != 0) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
return 0;
diff --git a/cmd/log_mgmt/port/zephyr/src/zephyr_log_mgmt.c b/cmd/log_mgmt/port/zephyr/src/zephyr_log_mgmt.c
index 8ddc012..23964a4 100644
--- a/cmd/log_mgmt/port/zephyr/src/zephyr_log_mgmt.c
+++ b/cmd/log_mgmt/port/zephyr/src/zephyr_log_mgmt.c
@@ -40,7 +40,7 @@
for (i = 0; i <= idx; i++) {
mdlog = mdlog_get_next(mdlog);
if (mdlog == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
}
@@ -56,7 +56,7 @@
name = mdlog_module_name(idx);
if (name == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
} else {
*out_module_name = name;
return 0;
@@ -70,7 +70,7 @@
name = mdlog_level_name(idx);
if (name == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
} else {
*out_level_name = name;
return 0;
@@ -98,7 +98,7 @@
rc = mdlog_read(log, desciptor, &ueh, 0, sizeof ueh);
if (rc != sizeof ueh) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
/* If specified timestamp is nonzero, it is the primary criterion, and the
@@ -125,7 +125,7 @@
rc = mdlog_read(log, desciptor, zephyr_log_mgmt_walk_arg->body, sizeof ueh,
read_len);
if (rc < 0) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
entry.ts = ueh.ue_ts;
@@ -154,7 +154,7 @@
mdlog = mdlog_find(log_name);
if (mdlog == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
if (strcmp(mdlog->l_name, log_name) == 0) {
@@ -166,7 +166,7 @@
return mdlog_walk(mdlog, zephyr_log_mgmt_walk_cb, &offset);
}
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
int
@@ -177,12 +177,12 @@
mdlog = mdlog_find(log_name);
if (mdlog == NULL) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
rc = mdlog_flush(mdlog);
if (rc != 0) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
return 0;
diff --git a/cmd/log_mgmt/src/log_mgmt.c b/cmd/log_mgmt/src/log_mgmt.c
index 7e6c715..dab534f 100644
--- a/cmd/log_mgmt/src/log_mgmt.c
+++ b/cmd/log_mgmt/src/log_mgmt.c
@@ -108,7 +108,7 @@
err |= cbor_encode_text_stringz(&lmec->mapenc, "str");
break;
default:
- return MGMT_ERR_ECORRUPT;
+ return LOG_MGMT_ERR_ECORRUPT;
}
#endif
err |= cbor_encode_text_stringz(&lmec->mapenc, "ts");
@@ -180,10 +180,10 @@
}
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
- return MGMT_ERR_EOK;
+ return LOG_MGMT_ERR_EOK;
}
static int
@@ -236,7 +236,7 @@
}
/* We want a negative error code here */
- return -1 * MGMT_ERR_EMSGSIZE;
+ return -1 * LOG_MGMT_ERR_EUNKNOWN;
}
ctxt->rsp_len += entry_len;
}
@@ -278,7 +278,7 @@
rsp_len = cbor_encode_bytes_written(enc) +
cbor_encode_bytes_written(&cnt_encoder);
if (rsp_len > LOG_MGMT_MAX_RSP_LEN) {
- rc = MGMT_ERR_EMSGSIZE;
+ rc = LOG_MGMT_ERR_EUNKNOWN;
goto err;
}
@@ -307,7 +307,7 @@
err |= cbor_encoder_close_container(enc, &entries);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
err:
@@ -342,7 +342,7 @@
err |= cbor_encoder_close_container(ctxt, &logs);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
return 0;
@@ -392,7 +392,7 @@
name[0] = '\0';
rc = cbor_read_object(&ctxt->it, attr);
if (rc != 0) {
- return MGMT_ERR_EINVAL;
+ return LOG_MGMT_ERR_EINVAL;
}
name_len = strlen(name);
@@ -401,7 +401,7 @@
/* Determine the index that the next log entry would use. */
rc = log_mgmt_impl_get_next_idx(&next_idx);
if (rc != 0) {
- return MGMT_ERR_EUNKNOWN;
+ return LOG_MGMT_ERR_EUNKNOWN;
}
err |= cbor_encode_text_stringz(&ctxt->encoder, "next_index");
@@ -415,12 +415,12 @@
/* Iterate list of logs, encoding each that matches the client request. */
for (log_idx = 0; ; log_idx++) {
rc = log_mgmt_impl_get_log(log_idx, &log);
- if (rc == MGMT_ERR_ENOENT) {
+ if (rc == LOG_MGMT_ERR_ENOENT) {
/* Log list fully iterated. */
if (name_len != 0) {
/* Client specified log name, but the log wasn't found. */
cbor_encoder_close_container(&ctxt->encoder, &logs);
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
} else {
break;
}
@@ -434,7 +434,7 @@
rc = log_encode(&log, &logs, timestamp, index);
#if LOG_MGMT_READ_WATERMARK_UPDATE
- if (rc == 0 || rc == MGMT_ERR_EMSGSIZE) {
+ if (rc == 0 || rc == LOG_MGMT_ERR_EUNKNOWN) {
log_mgmt_impl_set_watermark(&log, index);
}
#endif
@@ -461,7 +461,7 @@
err |= cbor_encode_int(&ctxt->encoder, rc);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
return 0;
@@ -481,14 +481,14 @@
err = 0;
err |= cbor_encode_text_stringz(&ctxt->encoder, "rc");
- err |= cbor_encode_int(&ctxt->encoder, MGMT_ERR_EOK);
+ err |= cbor_encode_int(&ctxt->encoder, LOG_MGMT_ERR_EOK);
err |= cbor_encode_text_stringz(&ctxt->encoder, "module_map");
err |= cbor_encoder_create_map(&ctxt->encoder, &modules,
CborIndefiniteLength);
for (module = 0; ; module++) {
rc = log_mgmt_impl_get_module(module, &module_name);
- if (rc == MGMT_ERR_ENOENT) {
+ if (rc == LOG_MGMT_ERR_ENOENT) {
break;
}
if (rc != 0) {
@@ -505,7 +505,7 @@
err |= cbor_encoder_close_container(&ctxt->encoder, &modules);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
return 0;
@@ -525,14 +525,14 @@
err = 0;
err |= cbor_encode_text_stringz(&ctxt->encoder, "rc");
- err |= cbor_encode_int(&ctxt->encoder, MGMT_ERR_EOK);
+ err |= cbor_encode_int(&ctxt->encoder, LOG_MGMT_ERR_EOK);
err |= cbor_encode_text_stringz(&ctxt->encoder, "log_list");
err |= cbor_encoder_create_array(&ctxt->encoder, &log_list,
CborIndefiniteLength);
for (log_idx = 0; ; log_idx++) {
rc = log_mgmt_impl_get_log(log_idx, &log);
- if (rc == MGMT_ERR_ENOENT) {
+ if (rc == LOG_MGMT_ERR_ENOENT) {
break;
}
if (rc != 0) {
@@ -548,7 +548,7 @@
err |= cbor_encoder_close_container(&ctxt->encoder, &log_list);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
return 0;
@@ -568,14 +568,14 @@
err = 0;
err |= cbor_encode_text_stringz(&ctxt->encoder, "rc");
- err |= cbor_encode_int(&ctxt->encoder, MGMT_ERR_EOK);
+ err |= cbor_encode_int(&ctxt->encoder, LOG_MGMT_ERR_EOK);
err |= cbor_encode_text_stringz(&ctxt->encoder, "level_map");
err |= cbor_encoder_create_map(&ctxt->encoder, &level_map,
CborIndefiniteLength);
for (level = 0; ; level++) {
rc = log_mgmt_impl_get_level(level, &level_name);
- if (rc == MGMT_ERR_ENOENT) {
+ if (rc == LOG_MGMT_ERR_ENOENT) {
break;
}
if (rc != 0) {
@@ -592,7 +592,7 @@
err |= cbor_encoder_close_container(&ctxt->encoder, &level_map);
if (err != 0) {
- return MGMT_ERR_ENOMEM;
+ return LOG_MGMT_ERR_ENOMEM;
}
return 0;
@@ -625,13 +625,13 @@
name[0] = '\0';
rc = cbor_read_object(&ctxt->it, attr);
if (rc != 0) {
- return MGMT_ERR_EINVAL;
+ return LOG_MGMT_ERR_EINVAL;
}
name_len = strlen(name);
for (log_idx = 0; ; log_idx++) {
rc = log_mgmt_impl_get_log(log_idx, &log);
- if (rc == MGMT_ERR_ENOENT) {
+ if (rc == LOG_MGMT_ERR_ENOENT) {
return 0;
}
if (rc != 0) {
@@ -653,7 +653,7 @@
}
if (name_len != 0) {
- return MGMT_ERR_ENOENT;
+ return LOG_MGMT_ERR_ENOENT;
}
return 0;