You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/10/05 21:56:00 UTC

[1/3] incubator-mynewt-core git commit: oicmgr; fix uri parameter parsing.

Repository: incubator-mynewt-core
Updated Branches:
  refs/heads/develop 6b802d653 -> c10e883c9


oicmgr; fix uri parameter parsing.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/c10e883c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/c10e883c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/c10e883c

Branch: refs/heads/develop
Commit: c10e883c9cf726bc0f70fabdc8e589668ea524a2
Parents: ba51dfd
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Wed Oct 5 14:51:48 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Wed Oct 5 14:53:03 2016 -0700

----------------------------------------------------------------------
 mgmt/oicmgr/src/newtmgr.c | 29 +++++++++++++++++------------
 1 file changed, 17 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/c10e883c/mgmt/oicmgr/src/newtmgr.c
----------------------------------------------------------------------
diff --git a/mgmt/oicmgr/src/newtmgr.c b/mgmt/oicmgr/src/newtmgr.c
index 39d6cf8..0f426ac 100644
--- a/mgmt/oicmgr/src/newtmgr.c
+++ b/mgmt/oicmgr/src/newtmgr.c
@@ -36,7 +36,7 @@
 #define OICMGR_STACK_SZ	OS_STACK_ALIGN(MYNEWT_VAL(OICMGR_STACK_SIZE))
 
 struct omgr_jbuf {
-    struct mgmt_jbuf ob_m;
+    struct mgmt_jbuf ob_mj;
     char *ob_in;
     uint16_t ob_in_off;
     uint16_t ob_in_end;
@@ -127,7 +127,7 @@ omgr_jbuf_write(void *arg, char *data, int len)
     njb = (struct omgr_jbuf *)arg;
 
     if (njb->ob_out_off + len >= njb->ob_out_end) {
-        assert(0);
+        rc = -1;
         goto err;
     }
     memcpy(njb->ob_out + njb->ob_out_off, data, len);
@@ -146,7 +146,7 @@ omgr_jbuf_init(struct omgr_jbuf *ob)
 
     memset(ob, 0, sizeof(*ob));
 
-    mjb = &ob->ob_m;
+    mjb = &ob->ob_mj;
     mjb->mjb_buf.jb_read_next = omgr_jbuf_read_next;
     mjb->mjb_buf.jb_read_prev = omgr_jbuf_read_prev;
     mjb->mjb_buf.jb_readn = omgr_jbuf_readn;
@@ -169,12 +169,13 @@ omgr_jbuf_setobuf(struct omgr_jbuf *ob, char *ptr, uint16_t maxlen)
     ob->ob_out_off = 0;
     ob->ob_out_end = maxlen;
     ob->ob_out[0] = '\0';
-    ob->ob_m.mjb_enc.je_wr_commas = 0;
+    ob->ob_mj.mjb_enc.je_wr_commas = 0;
 }
 
 static struct mgmt_handler *
 omgr_oic_find_handler(const char *q, int qlen)
 {
+    char id_str[8];
     int grp = -1;
     int id = -1;
     char *str;
@@ -182,16 +183,20 @@ omgr_oic_find_handler(const char *q, int qlen)
     int slen;
 
     slen = oc_ri_get_query_value(q, qlen, "gr", &str);
-    if (slen > 0) {
-        grp = strtoul(str, &eptr, 0);
-        if (*eptr != '\0' && *eptr != '&') {
+    if (slen > 0 && slen < sizeof(id_str) - 1) {
+        memcpy(id_str, str, slen);
+        id_str[slen] = '\0';
+        grp = strtoul(id_str, &eptr, 0);
+        if (*eptr != '\0') {
             return NULL;
         }
     }
     slen = oc_ri_get_query_value(q, qlen, "id", &str);
-    if (slen > 0) {
-        id = strtoul(str, &eptr, 0);
-        if (*eptr != '\0' && *eptr != '&') {
+    if (slen > 0 && slen < sizeof(id_str) - 1) {
+        memcpy(id_str, str, slen);
+        id_str[slen] = '\0';
+        id = strtoul(id_str, &eptr, 0);
+        if (*eptr != '\0') {
             return NULL;
         }
     }
@@ -233,13 +238,13 @@ omgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
 
     if (!isset) {
         if (handler->mh_read) {
-            rc = handler->mh_read(&o->os_jbuf.ob_m);
+            rc = handler->mh_read(&o->os_jbuf.ob_mj);
         } else {
             goto bad_req;
         }
     } else {
         if (handler->mh_write) {
-            rc = handler->mh_write(&o->os_jbuf.ob_m);
+            rc = handler->mh_write(&o->os_jbuf.ob_mj);
         } else {
             goto bad_req;
         }


[2/3] incubator-mynewt-core git commit: oicmgr; use the common mgmt code interface.

Posted by ma...@apache.org.
oicmgr; use the common mgmt code interface.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/ba51dfdb
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/ba51dfdb
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/ba51dfdb

Branch: refs/heads/develop
Commit: ba51dfdbcad7cc5dbfc4293d1a720852acebe3b6
Parents: 04a7e46
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Wed Oct 5 14:26:39 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Wed Oct 5 14:53:03 2016 -0700

----------------------------------------------------------------------
 mgmt/oicmgr/include/newtmgr/newtmgr.h | 119 ----------
 mgmt/oicmgr/src/newtmgr.c             | 356 +++++++++--------------------
 2 files changed, 112 insertions(+), 363 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ba51dfdb/mgmt/oicmgr/include/newtmgr/newtmgr.h
----------------------------------------------------------------------
diff --git a/mgmt/oicmgr/include/newtmgr/newtmgr.h b/mgmt/oicmgr/include/newtmgr/newtmgr.h
deleted file mode 100644
index 30be98f..0000000
--- a/mgmt/oicmgr/include/newtmgr/newtmgr.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *  http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-#ifndef _NEWTMGR_H_
-#define _NEWTMGR_H_
-
-#include <json/json.h>
-#include <inttypes.h>
-#include <os/os.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* MTU for newtmgr responses */
-#define NMGR_MAX_MTU 1024
-
-#ifndef STR
-/* Stringification of constants */
-#define STR(x) #x
-#endif
-
-/* First 64 groups are reserved for system level newtmgr commands.
- * Per-user commands are then defined after group 64.
- */
-#define NMGR_GROUP_ID_DEFAULT   (0)
-#define NMGR_GROUP_ID_IMAGE     (1)
-#define NMGR_GROUP_ID_STATS     (2)
-#define NMGR_GROUP_ID_CONFIG    (3)
-#define NMGR_GROUP_ID_LOGS      (4)
-#define NMGR_GROUP_ID_CRASH     (5)
-#define NMGR_GROUP_ID_SPLIT     (6)
-#define NMGR_GROUP_ID_PERUSER   (64)
-
-#define NMGR_OP_READ            (0)
-#define NMGR_OP_READ_RSP        (1)
-#define NMGR_OP_WRITE           (2)
-#define NMGR_OP_WRITE_RSP       (3)
-
-
-/**
- * Newtmgr JSON error codes
- */
-#define NMGR_ERR_EOK      (0)
-#define NMGR_ERR_EUNKNOWN (1)
-#define NMGR_ERR_ENOMEM   (2)
-#define NMGR_ERR_EINVAL   (3)
-#define NMGR_ERR_ETIMEOUT (4)
-#define NMGR_ERR_ENOENT   (5)
-#define NMGR_ERR_EPERUSER (256)
-
-struct nmgr_hdr {
-    uint8_t  nh_op;             /* NMGR_OP_XXX */
-    uint8_t  nh_flags;
-    uint16_t nh_len;            /* length of the payload */
-    uint16_t nh_group;          /* NMGR_GROUP_XXX */
-    uint8_t  nh_seq;            /* sequence number */
-    uint8_t  nh_id;             /* message ID within group */
-};
-
-struct nmgr_jbuf {
-    /* json_buffer must be first element in the structure */
-    struct json_buffer njb_buf;
-    struct json_encoder njb_enc;
-    char *njb_in;
-    uint16_t njb_in_off;
-    uint16_t njb_in_end;
-    char *njb_out;
-    uint16_t njb_out_off;
-    uint16_t njb_out_end;
-};
-int nmgr_jbuf_setoerr(struct nmgr_jbuf *njb, int errcode);
-
-typedef int (*nmgr_handler_func_t)(struct nmgr_jbuf *);
-
-#define NMGR_HANDLER_FUNC(__name)                                           \
-    int __name(struct nmgr_hdr *nmr, struct os_mbuf *req, uint16_t srcoff,  \
-            struct os_mbuf *rsp)
-
-struct nmgr_handler {
-    nmgr_handler_func_t nh_read;
-    nmgr_handler_func_t nh_write;
-};
-
-struct nmgr_group {
-    struct nmgr_handler *ng_handlers;
-    uint16_t ng_handlers_count;
-    uint16_t ng_group_id;
-    STAILQ_ENTRY(nmgr_group) ng_next;
-};
-
-#define NMGR_GROUP_SET_HANDLERS(__group, __handlers)       \
-    (__group)->ng_handlers = (__handlers);                 \
-    (__group)->ng_handlers_count = (sizeof((__handlers)) / \
-            sizeof(struct nmgr_handler));
-
-int nmgr_group_register(struct nmgr_group *group);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _NETMGR_H */

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/ba51dfdb/mgmt/oicmgr/src/newtmgr.c
----------------------------------------------------------------------
diff --git a/mgmt/oicmgr/src/newtmgr.c b/mgmt/oicmgr/src/newtmgr.c
index 769f806..39d6cf8 100644
--- a/mgmt/oicmgr/src/newtmgr.c
+++ b/mgmt/oicmgr/src/newtmgr.c
@@ -26,235 +26,113 @@
 #include <assert.h>
 #include <string.h>
 
-#include <newtmgr/newtmgr.h>
+#include <mgmt/mgmt.h>
 #include <nmgr_os/nmgr_os.h>
 
 #include <oic/oc_api.h>
 
-#define NMGR_OC_EVENT	(OS_EVENT_T_PERUSER)
-#define NMGR_OC_TIMER	(OS_EVENT_T_PERUSER + 1)
+#define OMGR_OC_EVENT	(OS_EVENT_T_PERUSER)
+#define OMGR_OC_TIMER	(OS_EVENT_T_PERUSER + 1)
 #define OICMGR_STACK_SZ	OS_STACK_ALIGN(MYNEWT_VAL(OICMGR_STACK_SIZE))
 
-struct nmgr_state {
-    struct os_mutex ns_group_lock;
-    STAILQ_HEAD(, nmgr_group) ns_groups;
-    struct os_eventq ns_evq;
-    struct os_event ns_oc_event;
-    struct os_callout ns_oc_timer;
-    struct os_task ns_task;
-    struct nmgr_jbuf ns_jbuf;		/* JSON buffer for NMGR task */
-    char ns_rsp[NMGR_MAX_MTU];
+struct omgr_jbuf {
+    struct mgmt_jbuf ob_m;
+    char *ob_in;
+    uint16_t ob_in_off;
+    uint16_t ob_in_end;
+    char *ob_out;
+    uint16_t ob_out_off;
+    uint16_t ob_out_end;
 };
 
-static struct nmgr_state nmgr_state = {
-  .ns_groups = STAILQ_HEAD_INITIALIZER(nmgr_state.ns_groups),
-  .ns_oc_event.ev_type = NMGR_OC_EVENT,
-  .ns_oc_timer.c_ev.ev_type = NMGR_OC_TIMER,
-  .ns_oc_timer.c_evq = &nmgr_state.ns_evq
+struct omgr_state {
+    struct os_eventq os_evq;
+    struct os_event os_oc_event;
+    struct os_callout os_oc_timer;
+    struct os_task os_task;
+    struct omgr_jbuf os_jbuf;		/* JSON buffer for NMGR task */
+    char os_rsp[MGMT_MAX_MTU];
 };
 
-static os_stack_t oicmgr_stack[OICMGR_STACK_SZ];
-
-static void nmgr_oic_get(oc_request_t *request, oc_interface_mask_t interface);
-static void nmgr_oic_put(oc_request_t *request, oc_interface_mask_t interface);
-
-int
-nmgr_group_list_lock(void)
-{
-    int rc;
-
-    if (!os_started()) {
-        return (0);
-    }
-
-    rc = os_mutex_pend(&nmgr_state.ns_group_lock, OS_WAIT_FOREVER);
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (0);
-err:
-    return (rc);
-}
-
-int
-nmgr_group_list_unlock(void)
-{
-    int rc;
-
-    if (!os_started()) {
-        return (0);
-    }
-
-    rc = os_mutex_release(&nmgr_state.ns_group_lock);
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (0);
-err:
-    return (rc);
-}
-
-
-int
-nmgr_group_register(struct nmgr_group *group)
-{
-    int rc;
-
-    rc = nmgr_group_list_lock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    STAILQ_INSERT_TAIL(&nmgr_state.ns_groups, group, ng_next);
-
-    rc = nmgr_group_list_unlock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (0);
-err:
-    return (rc);
-}
-
-static struct nmgr_group *
-nmgr_find_group(uint16_t group_id)
-{
-    struct nmgr_group *group;
-    int rc;
-
-    group = NULL;
-
-    rc = nmgr_group_list_lock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    STAILQ_FOREACH(group, &nmgr_state.ns_groups, ng_next) {
-        if (group->ng_group_id == group_id) {
-            break;
-        }
-    }
-
-    rc = nmgr_group_list_unlock();
-    if (rc != 0) {
-        goto err;
-    }
-
-    return (group);
-err:
-    return (NULL);
-}
-
-static struct nmgr_handler *
-nmgr_find_handler(uint16_t group_id, uint16_t handler_id)
-{
-    struct nmgr_group *group;
-    struct nmgr_handler *handler;
-
-    group = nmgr_find_group(group_id);
-    if (!group) {
-        goto err;
-    }
-
-    if (handler_id >= group->ng_handlers_count) {
-        goto err;
-    }
-
-    handler = &group->ng_handlers[handler_id];
-
-    return (handler);
-err:
-    return (NULL);
-}
+static struct omgr_state omgr_state = {
+  .os_oc_event.ev_type = OMGR_OC_EVENT,
+  .os_oc_timer.c_ev.ev_type = OMGR_OC_TIMER,
+  .os_oc_timer.c_evq = &omgr_state.os_evq
+};
 
-int
-nmgr_rsp_extend(struct nmgr_hdr *hdr, struct os_mbuf *rsp, void *data,
-        uint16_t len)
-{
-    int rc;
+static os_stack_t oicmgr_stack[OICMGR_STACK_SZ];
 
-    rc = os_mbuf_append(rsp, data, len);
-    if (rc != 0) {
-        goto err;
-    }
-    hdr->nh_len += len;
-
-    return (0);
-err:
-    return (rc);
-}
+static void omgr_oic_get(oc_request_t *request, oc_interface_mask_t interface);
+static void omgr_oic_put(oc_request_t *request, oc_interface_mask_t interface);
 
 static char
-nmgr_jbuf_read_next(struct json_buffer *jb)
+omgr_jbuf_read_next(struct json_buffer *jb)
 {
-    struct nmgr_jbuf *njb;
+    struct omgr_jbuf *njb;
     char c;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct omgr_jbuf *) jb;
 
-    if (njb->njb_in_off + 1 > njb->njb_in_end) {
+    if (njb->ob_in_off + 1 > njb->ob_in_end) {
         return '\0';
     }
 
-    c = njb->njb_in[njb->njb_in_off];
-    ++njb->njb_in_off;
+    c = njb->ob_in[njb->ob_in_off];
+    ++njb->ob_in_off;
 
     return (c);
 }
 
 static char
-nmgr_jbuf_read_prev(struct json_buffer *jb)
+omgr_jbuf_read_prev(struct json_buffer *jb)
 {
-    struct nmgr_jbuf *njb;
+    struct omgr_jbuf *njb;
     char c;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct omgr_jbuf *) jb;
 
-    if (njb->njb_in_off == 0) {
+    if (njb->ob_in_off == 0) {
         return '\0';
     }
 
-    --njb->njb_in_off;
-    c = njb->njb_in[njb->njb_in_off];
+    --njb->ob_in_off;
+    c = njb->ob_in[njb->ob_in_off];
 
     return (c);
 }
 
 static int
-nmgr_jbuf_readn(struct json_buffer *jb, char *buf, int size)
+omgr_jbuf_readn(struct json_buffer *jb, char *buf, int size)
 {
-    struct nmgr_jbuf *njb;
+    struct omgr_jbuf *njb;
     int read;
     int left;
 
-    njb = (struct nmgr_jbuf *) jb;
+    njb = (struct omgr_jbuf *)jb;
 
-    left = njb->njb_in_end - njb->njb_in_off;
+    left = njb->ob_in_end - njb->ob_in_off;
     read = size > left ? left : size;
 
-    memcpy(buf, njb->njb_in + njb->njb_in_off, read);
+    memcpy(buf, njb->ob_in + njb->ob_in_off, read);
 
     return (read);
 }
 
 static int
-nmgr_jbuf_write(void *arg, char *data, int len)
+omgr_jbuf_write(void *arg, char *data, int len)
 {
-    struct nmgr_jbuf *njb;
+    struct omgr_jbuf *njb;
     int rc;
 
-    njb = (struct nmgr_jbuf *) arg;
+    njb = (struct omgr_jbuf *)arg;
 
-    if (njb->njb_out_off + len >= njb->njb_out_end) {
+    if (njb->ob_out_off + len >= njb->ob_out_end) {
         assert(0);
         goto err;
     }
-    memcpy(njb->njb_out + njb->njb_out_off, data, len);
-    njb->njb_out_off += len;
-    njb->njb_out[njb->njb_out_off] = '\0';
+    memcpy(njb->ob_out + njb->ob_out_off, data, len);
+    njb->ob_out_off += len;
+    njb->ob_out[njb->ob_out_off] = '\0';
 
     return (0);
 err:
@@ -262,50 +140,40 @@ err:
 }
 
 static void
-nmgr_jbuf_init(struct nmgr_jbuf *njb)
+omgr_jbuf_init(struct omgr_jbuf *ob)
 {
-    memset(njb, 0, sizeof(*njb));
+    struct mgmt_jbuf *mjb;
 
-    njb->njb_buf.jb_read_next = nmgr_jbuf_read_next;
-    njb->njb_buf.jb_read_prev = nmgr_jbuf_read_prev;
-    njb->njb_buf.jb_readn = nmgr_jbuf_readn;
-    njb->njb_enc.je_write = nmgr_jbuf_write;
-    njb->njb_enc.je_arg = njb;
-}
+    memset(ob, 0, sizeof(*ob));
 
-static void
-nmgr_jbuf_setibuf(struct nmgr_jbuf *njb, char *ptr, uint16_t len)
-{
-    njb->njb_in_off = 0;
-    njb->njb_in_end = len;
-    njb->njb_in = ptr;
-    njb->njb_enc.je_wr_commas = 0;
+    mjb = &ob->ob_m;
+    mjb->mjb_buf.jb_read_next = omgr_jbuf_read_next;
+    mjb->mjb_buf.jb_read_prev = omgr_jbuf_read_prev;
+    mjb->mjb_buf.jb_readn = omgr_jbuf_readn;
+    mjb->mjb_enc.je_write = omgr_jbuf_write;
+    mjb->mjb_enc.je_arg = ob;
 }
 
 static void
-nmgr_jbuf_setobuf(struct nmgr_jbuf *njb, char *ptr, uint16_t maxlen)
+omgr_jbuf_setibuf(struct omgr_jbuf *ob, char *ptr, uint16_t len)
 {
-    njb->njb_out = ptr;
-    njb->njb_out_off = 0;
-    njb->njb_out_end = maxlen;
-    njb->njb_out[0] = '\0';
+    ob->ob_in_off = 0;
+    ob->ob_in_end = len;
+    ob->ob_in = ptr;
 }
 
-int
-nmgr_jbuf_setoerr(struct nmgr_jbuf *njb, int errcode)
+static void
+omgr_jbuf_setobuf(struct omgr_jbuf *ob, char *ptr, uint16_t maxlen)
 {
-    struct json_value jv;
-
-    json_encode_object_start(&njb->njb_enc);
-    JSON_VALUE_INT(&jv, errcode);
-    json_encode_object_entry(&njb->njb_enc, "rc", &jv);
-    json_encode_object_finish(&njb->njb_enc);
-
-    return (0);
+    ob->ob_out = ptr;
+    ob->ob_out_off = 0;
+    ob->ob_out_end = maxlen;
+    ob->ob_out[0] = '\0';
+    ob->ob_m.mjb_enc.je_wr_commas = 0;
 }
 
-static struct nmgr_handler *
-nmgr_oic_find_handler(const char *q, int qlen)
+static struct mgmt_handler *
+omgr_oic_find_handler(const char *q, int qlen)
 {
     int grp = -1;
     int id = -1;
@@ -327,14 +195,14 @@ nmgr_oic_find_handler(const char *q, int qlen)
             return NULL;
         }
     }
-    return nmgr_find_handler(grp, id);
+    return mgmt_find_handler(grp, id);
 }
 
 static void
-nmgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
+omgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
 {
-    struct nmgr_state *ns = &nmgr_state;
-    struct nmgr_handler *handler;
+    struct omgr_state *o = &omgr_state;
+    struct mgmt_handler *handler;
     oc_rep_t *data;
     int rc;
 
@@ -342,7 +210,7 @@ nmgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
         goto bad_req;
     }
 
-    handler = nmgr_oic_find_handler(req->query, req->query_len);
+    handler = omgr_oic_find_handler(req->query, req->query_len);
     if (!handler) {
         goto bad_req;
     }
@@ -350,28 +218,28 @@ nmgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
     /*
      * Setup state for JSON encoding.
      */
-    nmgr_jbuf_setobuf(&ns->ns_jbuf, ns->ns_rsp, sizeof(ns->ns_rsp));
+    omgr_jbuf_setobuf(&o->os_jbuf, o->os_rsp, sizeof(o->os_rsp));
 
     data = req->request_payload;
     if (data) {
         if (data->type != STRING) {
             goto bad_req;
         }
-        nmgr_jbuf_setibuf(&ns->ns_jbuf, oc_string(data->value_string),
+        omgr_jbuf_setibuf(&o->os_jbuf, oc_string(data->value_string),
           oc_string_len(data->value_string));
     } else {
-        nmgr_jbuf_setibuf(&ns->ns_jbuf, NULL, 0);
+        omgr_jbuf_setibuf(&o->os_jbuf, NULL, 0);
     }
 
     if (!isset) {
-        if (handler->nh_read) {
-            rc = handler->nh_read(&ns->ns_jbuf);
+        if (handler->mh_read) {
+            rc = handler->mh_read(&o->os_jbuf.ob_m);
         } else {
             goto bad_req;
         }
     } else {
-        if (handler->nh_write) {
-            rc = handler->nh_write(&ns->ns_jbuf);
+        if (handler->mh_write) {
+            rc = handler->mh_write(&o->os_jbuf.ob_m);
         } else {
             goto bad_req;
         }
@@ -385,7 +253,7 @@ nmgr_oic_op(oc_request_t *req, oc_interface_mask_t mask, int isset)
     case OC_IF_BASELINE:
         oc_process_baseline_interface(req->resource);
     case OC_IF_RW:
-        oc_rep_set_text_string(root, "key", ns->ns_rsp);
+        oc_rep_set_text_string(root, "key", o->os_rsp);
         break;
     default:
         break;
@@ -399,19 +267,19 @@ bad_req:
 }
 
 static void
-nmgr_oic_get(oc_request_t *req, oc_interface_mask_t mask)
+omgr_oic_get(oc_request_t *req, oc_interface_mask_t mask)
 {
-    nmgr_oic_op(req, mask, 0);
+    omgr_oic_op(req, mask, 0);
 }
 
 static void
-nmgr_oic_put(oc_request_t *req, oc_interface_mask_t mask)
+omgr_oic_put(oc_request_t *req, oc_interface_mask_t mask)
 {
-    nmgr_oic_op(req, mask, 1);
+    omgr_oic_op(req, mask, 1);
 }
 
 static void
-nmgr_app_init(void)
+omgr_app_init(void)
 {
     oc_init_platform("MyNewt", NULL, NULL);
     oc_add_device("/oic/d", "oic.d.light", "MynewtLed", "1.0", "1.0", NULL,
@@ -419,58 +287,58 @@ nmgr_app_init(void)
 }
 
 static void
-nmgr_register_resources(void)
+omgr_register_resources(void)
 {
     uint8_t mode;
     oc_resource_t *res = NULL;
     char name[12];
 
-    snprintf(name, sizeof(name), "/nmgr");
+    snprintf(name, sizeof(name), "/omgr");
     res = oc_new_resource(name, 1, 0);
     oc_resource_bind_resource_type(res, "x.mynewt.nmgr");
     mode = OC_IF_RW;
     oc_resource_bind_resource_interface(res, mode);
     oc_resource_set_default_interface(res, mode);
     oc_resource_set_discoverable(res);
-    oc_resource_set_request_handler(res, OC_GET, nmgr_oic_get);
-    oc_resource_set_request_handler(res, OC_PUT, nmgr_oic_put);
+    oc_resource_set_request_handler(res, OC_GET, omgr_oic_get);
+    oc_resource_set_request_handler(res, OC_PUT, omgr_oic_put);
     oc_add_resource(res);
 }
 
-static const oc_handler_t nmgr_oc_handler = {
-    .init = nmgr_app_init,
-    .register_resources = nmgr_register_resources
+static const oc_handler_t omgr_oc_handler = {
+    .init = omgr_app_init,
+    .register_resources = omgr_register_resources
 };
 
 void
 oc_signal_main_loop(void)
 {
-    struct nmgr_state *ns = &nmgr_state;
+    struct omgr_state *o = &omgr_state;
 
-    os_eventq_put(&ns->ns_evq, &ns->ns_oc_event);
+    os_eventq_put(&o->os_evq, &o->os_oc_event);
 }
 
 void
-nmgr_oic_task(void *arg)
+omgr_oic_task(void *arg)
 {
-    struct nmgr_state *ns = &nmgr_state;
+    struct omgr_state *o = &omgr_state;
     struct os_event *ev;
     struct os_callout_func *ocf;
     os_time_t next_event;
 
-    nmgr_jbuf_init(&ns->ns_jbuf);
+    omgr_jbuf_init(&o->os_jbuf);
 
-    oc_main_init((oc_handler_t *)&nmgr_oc_handler);
+    oc_main_init((oc_handler_t *)&omgr_oc_handler);
     while (1) {
-        ev = os_eventq_get(&ns->ns_evq);
+        ev = os_eventq_get(&o->os_evq);
         switch (ev->ev_type) {
-        case NMGR_OC_EVENT:
-        case NMGR_OC_TIMER:
+        case OMGR_OC_EVENT:
+        case OMGR_OC_TIMER:
             next_event = oc_main_poll();
             if (next_event) {
-                os_callout_reset(&ns->ns_oc_timer, next_event - os_time_get());
+                os_callout_reset(&o->os_oc_timer, next_event - os_time_get());
             } else {
-                os_callout_stop(&ns->ns_oc_timer);
+                os_callout_stop(&o->os_oc_timer);
             }
             break;
         case OS_EVENT_T_TIMER:
@@ -484,19 +352,19 @@ nmgr_oic_task(void *arg)
 int
 oicmgr_init(void)
 {
-    struct nmgr_state *ns = &nmgr_state;
+    struct omgr_state *o = &omgr_state;
     int rc;
 
-    os_eventq_init(&ns->ns_evq);
+    os_eventq_init(&o->os_evq);
 
-    rc = os_task_init(&ns->ns_task, "newtmgr_oic", nmgr_oic_task, NULL,
+    rc = os_task_init(&o->os_task, "newtmgr_oic", omgr_oic_task, NULL,
       MYNEWT_VAL(OICMGR_TASK_PRIO), OS_WAIT_FOREVER,
       oicmgr_stack, OICMGR_STACK_SZ);
     if (rc != 0) {
         goto err;
     }
 
-    rc = nmgr_os_groups_register(&ns->ns_evq);
+    rc = nmgr_os_groups_register(&o->os_evq);
     if (rc != 0) {
         goto err;
     }


[3/3] incubator-mynewt-core git commit: newtmgr, mgmt; move newtmgr specific components out of mgmt_jbuf.

Posted by ma...@apache.org.
newtmgr, mgmt; move newtmgr specific components out of mgmt_jbuf.


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/04a7e46f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/04a7e46f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/04a7e46f

Branch: refs/heads/develop
Commit: 04a7e46f6ed5b979eb8edc79743a7e20544a059e
Parents: 6b802d6
Author: Marko Kiiskila <ma...@runtime.io>
Authored: Wed Oct 5 13:03:13 2016 -0700
Committer: Marko Kiiskila <ma...@runtime.io>
Committed: Wed Oct 5 14:53:03 2016 -0700

----------------------------------------------------------------------
 mgmt/mgmt/include/mgmt/mgmt.h |  7 +---
 mgmt/newtmgr/src/newtmgr.c    | 85 +++++++++++++++++++++-----------------
 2 files changed, 48 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04a7e46f/mgmt/mgmt/include/mgmt/mgmt.h
----------------------------------------------------------------------
diff --git a/mgmt/mgmt/include/mgmt/mgmt.h b/mgmt/mgmt/include/mgmt/mgmt.h
index 01e1da5..d176127 100644
--- a/mgmt/mgmt/include/mgmt/mgmt.h
+++ b/mgmt/mgmt/include/mgmt/mgmt.h
@@ -63,13 +63,10 @@ extern "C" {
 
 struct mgmt_jbuf {
     /* json_buffer must be first element in the structure */
-    struct json_buffer mjb_buf;
-    struct json_encoder mjb_enc;
+    struct json_buffer mjb_buf;  /* for input */
+    struct json_encoder mjb_enc; /* for output */
     struct os_mbuf *mjb_in_m;
     struct os_mbuf *mjb_out_m;
-    void *mjb_arg;
-    uint16_t mjb_off;
-    uint16_t mjb_end;
 };
 
 typedef int (*mgmt_handler_func_t)(struct mgmt_jbuf *);

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/04a7e46f/mgmt/newtmgr/src/newtmgr.c
----------------------------------------------------------------------
diff --git a/mgmt/newtmgr/src/newtmgr.c b/mgmt/newtmgr/src/newtmgr.c
index 83ada60..feae036 100644
--- a/mgmt/newtmgr/src/newtmgr.c
+++ b/mgmt/newtmgr/src/newtmgr.c
@@ -35,9 +35,15 @@ os_stack_t newtmgr_stack[OS_STACK_ALIGN(MYNEWT_VAL(NEWTMGR_STACK_SIZE))];
 static struct os_eventq g_nmgr_evq;
 static struct os_task g_nmgr_task;
 
-/* JSON buffer for NMGR task
+/*
+ * JSON buffer for newtmgr
  */
-static struct mgmt_jbuf nmgr_task_jbuf;
+static struct nmgr_jbuf {
+    struct mgmt_jbuf n_b;
+    struct nmgr_hdr *n_hdr;
+    uint16_t n_off;
+    uint16_t n_end;
+} nmgr_task_jbuf;
 
 static int
 nmgr_rsp_extend(struct nmgr_hdr *hdr, struct os_mbuf *rsp, void *data,
@@ -59,21 +65,21 @@ err:
 static char
 nmgr_jbuf_read_next(struct json_buffer *jb)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    if (njb->mjb_off + 1 > njb->mjb_end) {
+    if (njb->n_off + 1 > njb->n_end) {
         return '\0';
     }
 
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
-    ++njb->mjb_off;
+    ++njb->n_off;
 
     return (c);
 }
@@ -81,18 +87,18 @@ nmgr_jbuf_read_next(struct json_buffer *jb)
 static char
 nmgr_jbuf_read_prev(struct json_buffer *jb)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     char c;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    if (njb->mjb_off == 0) {
+    if (njb->n_off == 0) {
         return '\0';
     }
 
-    --njb->mjb_off;
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, 1, &c);
+    --njb->n_off;
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, 1, &c);
     if (rc == -1) {
         c = '\0';
     }
@@ -103,17 +109,17 @@ nmgr_jbuf_read_prev(struct json_buffer *jb)
 static int
 nmgr_jbuf_readn(struct json_buffer *jb, char *buf, int size)
 {
-    struct mgmt_jbuf *njb;
+    struct nmgr_jbuf *njb;
     int read;
     int left;
     int rc;
 
-    njb = (struct mgmt_jbuf *) jb;
+    njb = (struct nmgr_jbuf *) jb;
 
-    left = njb->mjb_end - njb->mjb_off;
+    left = njb->n_end - njb->n_off;
     read = size > left ? left : size;
 
-    rc = os_mbuf_copydata(njb->mjb_in_m, njb->mjb_off, read, buf);
+    rc = os_mbuf_copydata(njb->n_b.mjb_in_m, njb->n_off, read, buf);
     if (rc != 0) {
         goto err;
     }
@@ -126,14 +132,12 @@ err:
 int
 nmgr_jbuf_write(void *arg, char *data, int len)
 {
-    struct mgmt_jbuf *njb;
-    struct nmgr_hdr *hdr;
+    struct nmgr_jbuf *njb;
     int rc;
 
-    njb = (struct mgmt_jbuf *) arg;
-    hdr = (struct nmgr_hdr *)njb->mjb_arg;
+    njb = (struct nmgr_jbuf *) arg;
 
-    rc = nmgr_rsp_extend(hdr, njb->mjb_out_m, data, len);
+    rc = nmgr_rsp_extend(njb->n_hdr, njb->n_b.mjb_out_m, data, len);
     if (rc != 0) {
         assert(0);
         goto err;
@@ -145,35 +149,38 @@ err:
 }
 
 static int
-nmgr_jbuf_init(struct mgmt_jbuf *njb)
+nmgr_jbuf_init(struct nmgr_jbuf *njb)
 {
+    struct mgmt_jbuf *mj;
+
     memset(njb, 0, sizeof(*njb));
 
-    njb->mjb_buf.jb_read_next = nmgr_jbuf_read_next;
-    njb->mjb_buf.jb_read_prev = nmgr_jbuf_read_prev;
-    njb->mjb_buf.jb_readn = nmgr_jbuf_readn;
-    njb->mjb_enc.je_write = nmgr_jbuf_write;
-    njb->mjb_enc.je_arg = njb;
+    mj = &njb->n_b;
+    mj->mjb_buf.jb_read_next = nmgr_jbuf_read_next;
+    mj->mjb_buf.jb_read_prev = nmgr_jbuf_read_prev;
+    mj->mjb_buf.jb_readn = nmgr_jbuf_readn;
+    mj->mjb_enc.je_write = nmgr_jbuf_write;
+    mj->mjb_enc.je_arg = njb;
 
     return (0);
 }
 
 static void
-nmgr_jbuf_setibuf(struct mgmt_jbuf *njb, struct os_mbuf *m,
+nmgr_jbuf_setibuf(struct nmgr_jbuf *njb, struct os_mbuf *m,
         uint16_t off, uint16_t len)
 {
-    njb->mjb_off = off;
-    njb->mjb_end = off + len;
-    njb->mjb_in_m = m;
-    njb->mjb_enc.je_wr_commas = 0;
+    njb->n_b.mjb_in_m = m;
+    njb->n_off = off;
+    njb->n_end = off + len;
 }
 
 static void
-nmgr_jbuf_setobuf(struct mgmt_jbuf *njb, struct nmgr_hdr *hdr,
+nmgr_jbuf_setobuf(struct nmgr_jbuf *njb, struct nmgr_hdr *hdr,
         struct os_mbuf *m)
 {
-    njb->mjb_out_m = m;
-    njb->mjb_arg = hdr;
+    njb->n_b.mjb_out_m = m;
+    njb->n_b.mjb_enc.je_wr_commas = 0;
+    njb->n_hdr = hdr;
 }
 
 static struct nmgr_hdr*
@@ -207,10 +214,10 @@ nmgr_send_err_rsp(struct nmgr_transport *nt, struct os_mbuf *m,
     if (!hdr) {
         return;
     }
-    mgmt_jbuf_setoerr(&nmgr_task_jbuf, rc);
+    mgmt_jbuf_setoerr(&nmgr_task_jbuf.n_b, rc);
     hdr->nh_len = htons(hdr->nh_len);
     hdr->nh_flags = NMGR_F_JSON_RSP_COMPLETE;
-    nt->nt_output(nt, nmgr_task_jbuf.mjb_out_m);
+    nt->nt_output(nt, nmgr_task_jbuf.n_b.mjb_out_m);
 }
 
 static int
@@ -358,13 +365,13 @@ nmgr_handle_req(struct nmgr_transport *nt, struct os_mbuf *req)
 
         if (hdr.nh_op == NMGR_OP_READ) {
             if (handler->mh_read) {
-                rc = handler->mh_read(&nmgr_task_jbuf);
+                rc = handler->mh_read(&nmgr_task_jbuf.n_b);
             } else {
                 rc = MGMT_ERR_ENOENT;
             }
         } else if (hdr.nh_op == NMGR_OP_WRITE) {
             if (handler->mh_write) {
-                rc = handler->mh_write(&nmgr_task_jbuf);
+                rc = handler->mh_write(&nmgr_task_jbuf.n_b);
             } else {
                 rc = MGMT_ERR_ENOENT;
             }