This is an automated email from the ASF dual-hosted git repository.

marko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newtmgr.git


The following commit(s) were added to refs/heads/master by this push:
     new 8803aa3  udp_oic_sesn; add UdpOicSesn.PutResourceOnce()
8803aa3 is described below

commit 8803aa3f8f651a1182aeac2ae40b6ab963832cc0
Author: Marko Kiiskila <ma...@runtime.io>
AuthorDate: Fri Aug 11 11:08:07 2017 -0700

    udp_oic_sesn; add UdpOicSesn.PutResourceOnce()
---
 nmxact/udp/udp_oic_sesn.go | 28 +++++++++++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/nmxact/udp/udp_oic_sesn.go b/nmxact/udp/udp_oic_sesn.go
index 9244048..c6a5400 100644
--- a/nmxact/udp/udp_oic_sesn.go
+++ b/nmxact/udp/udp_oic_sesn.go
@@ -181,5 +181,31 @@ func (uos *UdpOicSesn) PutResourceOnce(resType 
sesn.ResourceType,
        uri string, value []byte,
        opt sesn.TxOptions) (coap.COAPCode, error) {
 
-       return 0, fmt.Errorf("UdpOicSesn.PutResourceOnce() unsupported")
+       token := nmxutil.NextToken()
+
+       ol, err := uos.d.AddOicListener(token)
+       if err != nil {
+               return 0, err
+       }
+       defer uos.d.RemoveOicListener(token)
+
+       req, err := oic.EncodePut(false, uri, token, value)
+       if err != nil {
+               return 0, err
+       }
+
+       if _, err := uos.conn.WriteToUDP(req, uos.addr); err != nil {
+               return 0, err
+       }
+
+       for {
+               select {
+               case err := <-ol.ErrChan:
+                       return 0, err
+               case rsp := <-ol.RspChan:
+                       return rsp.Code(), nil
+               case <-ol.AfterTimeout(opt.Timeout):
+                       return 0, nmxutil.NewRspTimeoutError("OIC timeout")
+               }
+       }
 }

-- 
To stop receiving notification emails like this one, please contact
['"commits@mynewt.apache.org" <commits@mynewt.apache.org>'].

Reply via email to