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;