res: Use zero payload when no args specified

This command:

    newtmgr res get /my/res

should send a CoAP GET request with *no* payload.  An optional payload
can be specified with extra arguments after the resource name.  Since
there are no extra arguments, there should be no payload.

Prior to this commit, newtmgr was including an empty map as the payload
in such requests.

The bug was caused by this quirk in Go:
https://forum.golangbridge.org/t/a-nil-a-b-b-nil-with-pointers-and-interface/10593

In short, if `nil` is assigned to a variable of type `interface{}`, the
variable will *not* compare equal to `nil`.  An interface variable
contains two pieces of information: 1) its type, and 2) its value.  The
variable is not equal to `nil` because `nil` is an *untyped* nil value.

The solution is to return the untyped `nil` rather than the nil
interface{}.
1 file changed
tree: 804e25bce2f0867ceb17875579ae0db3e0461c4a
  1. docs/
  2. newtmgr/
  3. nmxact/
  4. .gitignore
  5. .rat-excludes
  6. go.mod
  7. go.sum
  8. LICENSE
  9. Makefile
  10. NOTICE
  11. README.md
  12. RELEASE_NOTES.md
README.md

Newtmgr

Newt Manager (newtmgr) is the application tool that enables a user to communicate with and manage remote devices running the Mynewt OS. It uses a connection profile to establish a connection with a device and sends command requests to the device. The newtmgr tool documentation can be found under /docs which are published at http://mynewt.apache.org/latest/os/modules/devmgmt/newtmgr.html

Building

Build the newtmgr tool as follows:

  1. Unpack newtmgr source.
  2. Rename resulting apache-mynewt-newtmgr-1.3.0 directory to $GOPATH/src/mynewt.apache.org/newtmgr
  3. cd $GOPATH/src/mynewt.apache.org/newtmgr/newtmgr
  4. GO111MODULE=on go build