func unregisterCmd()

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()
}