oic; ble transport was now fragmenting incorrectly.

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/72c5dce4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/72c5dce4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/72c5dce4

Branch: refs/heads/develop
Commit: 72c5dce434354227de0d97e708cfc7e2ca330dbe
Parents: f8143c7
Author: Marko Kiiskila <[email protected]>
Authored: Fri Jan 6 13:20:47 2017 -0800
Committer: Marko Kiiskila <[email protected]>
Committed: Fri Jan 6 15:03:01 2017 -0800

----------------------------------------------------------------------
 net/oic/src/port/mynewt/ble_adaptor.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/72c5dce4/net/oic/src/port/mynewt/ble_adaptor.c
----------------------------------------------------------------------
diff --git a/net/oic/src/port/mynewt/ble_adaptor.c 
b/net/oic/src/port/mynewt/ble_adaptor.c
index 4b3c310..cf7075e 100644
--- a/net/oic/src/port/mynewt/ble_adaptor.c
+++ b/net/oic/src/port/mynewt/ble_adaptor.c
@@ -283,9 +283,9 @@ oc_ble_frag(struct os_mbuf *m, uint16_t mtu)
         STAILQ_NEXT(pkt, omp_next) = NULL;
         return 0;
     }
-    off = pkt->omp_len % mtu;
 
-    while (off > mtu) {
+    off = pkt->omp_len - (pkt->omp_len % mtu);
+    while (off >= mtu) {
         n = os_msys_get_pkthdr(mtu, 0);
         if (!n) {
             goto err;
@@ -300,7 +300,6 @@ oc_ble_frag(struct os_mbuf *m, uint16_t mtu)
         off -= blk;
         os_mbuf_adj(m, -blk);
     }
-    os_mbuf_adj(m, mtu - OS_MBUF_PKTLEN(m));
     return 0;
 err:
     pkt = OS_MBUF_PKTHDR(m);

Reply via email to