in newtmgr/cli/interactive.go [249:302]
func unregisterCmd(c *ishell.Context) {
s, err := GetSesn()
if err != nil {
nmUsage(nil, err)
}
m, err := extractResKv(c.Args)
if err != nil || len(c.Args) == 0 {
c.Println("Incorrect or no parameters provided ... using cached ones")
} else {
getPath(m)
}
if hasStoredParams() == false {
c.Println("Missing resource path")
c.Println(c.HelpText())
return
}
if m["id"] == nil {
c.Println(c.HelpText())
return
}
id, err := cast.ToIntE(m["id"])
if err != nil {
c.Printf("Invalid ID: %v\n", m["id"])
c.Println(c.HelpText())
return
}
o := removeObserver(id)
if o == nil {
c.Println("Observer id:", id, "not found")
return
}
s.StopListenCoap(o.Listener.Criteria)
mp := nmcoap.MsgParams{
Code: coap.GET,
Uri: ResourcePath,
Observe: nmcoap.OBSERVE_STOP,
}
if err := coapTxRx(c, mp); err != nil {
fmt.Printf("error: %s\n", err.Error())
return
}
c.Println("Unregister for notifications")
c.Println("id: ", o.Id)
c.Println("path: ", o.Path)
c.Println("token: ", o.Listener.Criteria.Token)
c.Println()
}