Skip to content

Commit

Permalink
upgrade to github.com/plgd-dev/go-coap/v3
Browse files Browse the repository at this point in the history
  • Loading branch information
jkralik committed Aug 4, 2022
1 parent be75542 commit 564ed7d
Show file tree
Hide file tree
Showing 30 changed files with 456 additions and 156 deletions.
2 changes: 1 addition & 1 deletion client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/plgd-dev/device/client/core"
"github.com/plgd-dev/device/client/core/otm"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/go-coap/v2/net/blockwise"
"github.com/plgd-dev/go-coap/v3/net/blockwise"
kitSync "github.com/plgd-dev/kit/v2/sync"
)

Expand Down
2 changes: 1 addition & 1 deletion client/core/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/pion/dtls/v2"
pkgError "github.com/plgd-dev/device/pkg/error"
"github.com/plgd-dev/device/pkg/net/coap"
coapNet "github.com/plgd-dev/go-coap/v2/net"
coapNet "github.com/plgd-dev/go-coap/v3/net"
"github.com/plgd-dev/kit/v2/log"
)

Expand Down
2 changes: 1 addition & 1 deletion client/core/deleteResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/kit/v2/codec/ocf"
)

func (d *Device) DeleteResource(
Expand Down
28 changes: 16 additions & 12 deletions client/core/discover.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@ import (
"time"

"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/go-coap/v2/message"
"github.com/plgd-dev/go-coap/v2/net"
"github.com/plgd-dev/go-coap/v2/net/blockwise"
"github.com/plgd-dev/go-coap/v2/udp"
"github.com/plgd-dev/go-coap/v2/udp/client"
udpMessage "github.com/plgd-dev/go-coap/v2/udp/message"
"github.com/plgd-dev/go-coap/v2/udp/message/pool"
"github.com/plgd-dev/go-coap/v3/message"
udpMessage "github.com/plgd-dev/go-coap/v3/message"
"github.com/plgd-dev/go-coap/v3/message/pool"
"github.com/plgd-dev/go-coap/v3/net"
"github.com/plgd-dev/go-coap/v3/net/blockwise"
"github.com/plgd-dev/go-coap/v3/options"
"github.com/plgd-dev/go-coap/v3/udp"
"github.com/plgd-dev/go-coap/v3/udp/client"
coapUdpServer "github.com/plgd-dev/go-coap/v3/udp/server"
)

// See the section 10.4 on the line 2482 of the Core specification:
Expand All @@ -30,7 +32,7 @@ type DiscoveryClient struct {
mcastaddr string
msgID uint16
l *net.UDPConn
server *udp.Server
server *coapUdpServer.Server
wg sync.WaitGroup
opts []net.MulticastOption
}
Expand All @@ -40,7 +42,7 @@ func newDiscoveryClient(network, mcastaddr string, msgID uint16, timeout time.Du
if err != nil {
return nil, err
}
s := udp.NewServer(udp.WithErrors(errors), udp.WithBlockwise(true, blockwise.SZX1024, timeout), udp.WithMessagePool(pool.New(0, 0)))
s := udp.NewServer(options.WithErrors(errors), options.WithBlockwise(true, blockwise.SZX1024, timeout), options.WithMessagePool(pool.New(0, 0)))
c := &DiscoveryClient{
mcastaddr: mcastaddr,
msgID: msgID,
Expand All @@ -60,7 +62,7 @@ func newDiscoveryClient(network, mcastaddr string, msgID uint16, timeout time.Du
}

func (d *DiscoveryClient) PublishMsgWithContext(req *pool.Message, discoveryHandler DiscoveryHandler) error {
req.SetMessageID(d.msgID)
req.SetMessageID(int32(d.msgID))
req.SetType(udpMessage.NonConfirmable)
return d.server.DiscoveryRequest(req, d.mcastaddr, discoveryHandler, d.opts...)
}
Expand All @@ -84,7 +86,7 @@ func DialDiscoveryAddresses(ctx context.Context, cfg DiscoveryConfiguration, err
// We need to separate messageIDs for upd4 and udp6, because if any docker container has isolated network
// iotivity-lite gets error EINVAL(22) for sendmsg with UDP6 for some interfaces. If it happens, the device is
// not discovered and msgid is cached so all other multicast messages from another interfaces are dropped for deduplication.
msgIDudp4 := udpMessage.GetMID()
msgIDudp4 := uint16(udpMessage.GetMID())
msgIDudp6 := msgIDudp4 + ^uint16(0)/2

for _, address := range cfg.MulticastAddressUDP4 {
Expand Down Expand Up @@ -152,11 +154,13 @@ func runDiscovery(
for _, o := range options {
opts = o(opts)
}
req, err := client.NewGetRequest(ctx, pool.New(0, 0), href, opts...)
req := pool.NewMessage(ctx)
token, err := message.GetToken()
if err != nil {
errors <- MakeInternal(fmt.Errorf("device discovery request creation failed: %w", err))
return
}
req.SetupGet(href, token, opts...)

err = conn.PublishMsgWithContext(req, handler)
if err != nil {
Expand Down
11 changes: 6 additions & 5 deletions client/core/discoverDeviceCodec.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ package core
import (
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
pkgError "github.com/plgd-dev/device/pkg/error"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/go-coap/v2/message"
"github.com/plgd-dev/kit/v2/codec/ocf"
"github.com/plgd-dev/go-coap/v3/message"
"github.com/plgd-dev/go-coap/v3/message/pool"
)

type DiscoverDeviceCodec struct{}
Expand All @@ -24,7 +25,7 @@ type deviceLink struct {
Links schema.ResourceLinks `json:"links"`
}

func decodeDiscoverDevices(msg *message.Message, resources *schema.ResourceLinks) error {
func decodeDiscoverDevices(msg *pool.Message, resources *schema.ResourceLinks) error {
codec := ocf.VNDOCFCBORCodec{}
var devices []deviceLink

Expand All @@ -49,12 +50,12 @@ func decodeDiscoverDevices(msg *message.Message, resources *schema.ResourceLinks

// Decode validates the content format and
// propagates the payload to v as *schema.ResourceLinks
func (c DiscoverDeviceCodec) Decode(msg *message.Message, v interface{}) error {
func (c DiscoverDeviceCodec) Decode(msg *pool.Message, v interface{}) error {
resources, ok := v.(*schema.ResourceLinks)
if !ok {
return MakeInvalidArgument(fmt.Errorf("invalid type %T", v))
}
mt, err := msg.Options.ContentFormat()
mt, err := msg.Options().ContentFormat()
if err != nil {
return MakeUnimplemented(fmt.Errorf("content format not found"))
}
Expand Down
20 changes: 8 additions & 12 deletions client/core/discoverDeviceOwnership.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ import (
"context"
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema/doxm"
"github.com/plgd-dev/go-coap/v2/message"
"github.com/plgd-dev/go-coap/v2/message/codes"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v2/udp/message/pool"
"github.com/plgd-dev/kit/v2/codec/ocf"
"github.com/plgd-dev/go-coap/v3/message"
"github.com/plgd-dev/go-coap/v3/message/codes"
"github.com/plgd-dev/go-coap/v3/message/pool"
"github.com/plgd-dev/go-coap/v3/udp/client"
)

// DiscoverDeviceOwnershipHandler receives devices ownership info.
Expand Down Expand Up @@ -64,19 +64,15 @@ func DiscoverDeviceOwnership(

func handleDiscoverOwnershipResponse(ctx context.Context, handler DiscoverDeviceOwnershipHandler) func(client *client.ClientConn, req *pool.Message) {
return func(client *client.ClientConn, r *pool.Message) {
req, err := pool.ConvertTo(r)
if err != nil {
handler.Error(fmt.Errorf("request failed: %w", err))
}

if req.Code != codes.Content {
req := r
if req.Code() != codes.Content {
handler.Error(fmt.Errorf("request failed: %s", ocf.Dump(req)))
return
}

var doxm doxm.Doxm
var codec ocf.VNDOCFCBORCodec
err = codec.Decode(req, &doxm)
err := codec.Decode(req, &doxm)
if err != nil {
handler.Error(fmt.Errorf("decoding %v failed: %w", ocf.DumpHeader(req), err))
return
Expand Down
19 changes: 8 additions & 11 deletions client/core/discoverDevices.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@ import (
"context"
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/device/schema/resources"
"github.com/plgd-dev/go-coap/v2/message"
"github.com/plgd-dev/go-coap/v2/message/codes"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v2/udp/message/pool"
"github.com/plgd-dev/kit/v2/codec/ocf"
"github.com/plgd-dev/go-coap/v3/message"
"github.com/plgd-dev/go-coap/v3/message/codes"
"github.com/plgd-dev/go-coap/v3/message/pool"
"github.com/plgd-dev/go-coap/v3/udp/client"
"github.com/plgd-dev/kit/v2/net"
)

Expand All @@ -38,19 +38,16 @@ func DiscoverDevices(

func handleResponse(ctx context.Context, handler DiscoverDevicesHandler) func(*client.ClientConn, *pool.Message) {
return func(cc *client.ClientConn, r *pool.Message) {
req, err := pool.ConvertTo(r)
if err != nil {
handler.Error(fmt.Errorf("cannot convert message: %w", err))
}
if req.Code != codes.Content {
req := r
if req.Code() != codes.Content {
handler.Error(fmt.Errorf("request failed: %s", ocf.Dump(req)))
return
}

var links schema.ResourceLinks
var codec DiscoverDeviceCodec

err = codec.Decode(req, &links)
err := codec.Decode(req, &links)
if err != nil {
handler.Error(fmt.Errorf("decoding %v failed: %w", ocf.DumpHeader(req), err))
return
Expand Down
2 changes: 1 addition & 1 deletion client/core/getDevice.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/device/schema/device"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v3/udp/client"
)

// GetDeviceByIP gets the device directly via IP address and multicast listen port 5683.
Expand Down
2 changes: 1 addition & 1 deletion client/core/getDevices.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/device/schema/device"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v3/udp/client"
)

// DeviceHandler conveys device connections and errors during discovery.
Expand Down
2 changes: 1 addition & 1 deletion client/core/getOwnerships.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"fmt"

"github.com/plgd-dev/device/schema/doxm"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v3/udp/client"
)

// OwnershipHandler conveys device ownership and errors during discovery.
Expand Down
2 changes: 1 addition & 1 deletion client/core/getResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/kit/v2/codec/ocf"
)

// GetResource queries a device for a resource value in CBOR.
Expand Down
2 changes: 1 addition & 1 deletion client/core/getResourceLinks.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import (
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/device/schema/resources"
"github.com/plgd-dev/go-coap/v2/message"
"github.com/plgd-dev/go-coap/v3/message"
"github.com/plgd-dev/kit/v2/net"
)

Expand Down
2 changes: 1 addition & 1 deletion client/core/observeResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ import (
"sync"

"github.com/google/uuid"
"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/kit/v2/codec/ocf"
"go.uber.org/atomic"
)

Expand Down
2 changes: 1 addition & 1 deletion client/core/updateResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ import (
"context"
"fmt"

"github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/kit/v2/codec/ocf"
)

func (d *Device) UpdateResource(
Expand Down
2 changes: 1 addition & 1 deletion client/createResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import (
"context"

"github.com/plgd-dev/device/client/core"
codecOcf "github.com/plgd-dev/device/pkg/codec/ocf"
"github.com/plgd-dev/device/pkg/net/coap"
codecOcf "github.com/plgd-dev/kit/v2/codec/ocf"
)

func (c *Client) CreateResource(
Expand Down
2 changes: 1 addition & 1 deletion client/deleteResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"

"github.com/plgd-dev/device/client/core"
codecOcf "github.com/plgd-dev/kit/v2/codec/ocf"
codecOcf "github.com/plgd-dev/device/pkg/codec/ocf"
)

func (c *Client) DeleteResource(
Expand Down
4 changes: 2 additions & 2 deletions client/getDevice.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import (

"github.com/plgd-dev/device/client/core"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/go-coap/v2/message/codes"
"github.com/plgd-dev/go-coap/v2/message/status"
"github.com/plgd-dev/go-coap/v3/message/codes"
"github.com/plgd-dev/go-coap/v3/message/status"
)

func getLinksRefDevice(ctx context.Context, refDev *RefDevice, disableUDPEndpoints bool) (schema.ResourceLinks, error) {
Expand Down
2 changes: 1 addition & 1 deletion client/getResource.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import (
"context"

"github.com/plgd-dev/device/client/core"
codecOcf "github.com/plgd-dev/kit/v2/codec/ocf"
codecOcf "github.com/plgd-dev/device/pkg/codec/ocf"
)

func (c *Client) GetResource(
Expand Down
2 changes: 1 addition & 1 deletion client/observeDevices.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
"github.com/plgd-dev/device/pkg/net/coap"
"github.com/plgd-dev/device/schema"
"github.com/plgd-dev/device/schema/device"
"github.com/plgd-dev/go-coap/v2/udp/client"
"github.com/plgd-dev/go-coap/v3/udp/client"
"go.uber.org/atomic"
)

Expand Down
Loading

0 comments on commit 564ed7d

Please sign in to comment.