Skip to content

Commit

Permalink
Receive *aws.Config on NewDialer (#295)
Browse files Browse the repository at this point in the history
  • Loading branch information
at-wat authored Jul 5, 2021
1 parent 304accc commit 02c157e
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 13 deletions.
2 changes: 1 addition & 1 deletion MIGRATION.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
// error handling
}
-dialer, err := awsiotdev.NewPresignDialer(sess, endpoint)
+dialer, err := awsiotdev.NewPresignDialer(cfg, endpoint)
+dialer, err := awsiotdev.NewPresignDialer(&cfg, endpoint)
```
- 🔄If you want to use aws/aws-sdk-go (v1), with aws-iot-device-sdk-go v6:
```go
Expand Down
4 changes: 2 additions & 2 deletions dialer.go
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ type presignDialer struct {
}

// NewPresignDialer returns WebSockets Dialer with AWS v4 presigned URL.
func NewPresignDialer(cfg aws.Config, endpoint string, opts ...mqtt.DialOption) (mqtt.Dialer, error) {
func NewPresignDialer(cfg *aws.Config, endpoint string, opts ...mqtt.DialOption) (mqtt.Dialer, error) {
_, err := url.Parse("wss://" + endpoint)
if err != nil {
return nil, ioterr.New(err, "parsing endpoint")
Expand All @@ -59,7 +59,7 @@ func (d *presignDialer) DialContext(ctx context.Context) (*mqtt.BaseClient, erro

// NewDialer creates default dialer for the given URL for AWS IoT.
// Supported protocols are mqtts and wss (with presigned URL).
func NewDialer(cfg aws.Config, urlStr string, opts ...mqtt.DialOption) (mqtt.Dialer, error) {
func NewDialer(cfg *aws.Config, urlStr string, opts ...mqtt.DialOption) (mqtt.Dialer, error) {
u, err := url.Parse(urlStr)
if err != nil {
return nil, ioterr.New(err, "parsing server URL")
Expand Down
9 changes: 5 additions & 4 deletions dialer_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import (
)

func TestNewDialer(t *testing.T) {
cfg := &aws.Config{}
t.Run("ValidURL", func(t *testing.T) {
cases := map[string]struct {
url string
Expand All @@ -57,7 +58,7 @@ func TestNewDialer(t *testing.T) {
"WebSockets": {
url: "wss://hoge.foo:1234/ep",
dialer: &presignDialer{
signer: &presigner.Presigner{},
signer: presigner.New(cfg),
endpoint: "hoge.foo:1234",
},
},
Expand All @@ -69,7 +70,7 @@ func TestNewDialer(t *testing.T) {
for name, c := range cases {
c := c
t.Run(name, func(t *testing.T) {
d, err := NewDialer(aws.Config{}, c.url)
d, err := NewDialer(cfg, c.url)
if !errors.Is(err, c.err) {
var ie *ioterr.Error
if !errors.As(err, &ie) {
Expand All @@ -84,7 +85,7 @@ func TestNewDialer(t *testing.T) {
}
})
t.Run("InvalidURL", func(t *testing.T) {
_, err := NewDialer(aws.Config{}, ":aaa")
_, err := NewDialer(&aws.Config{}, ":aaa")
var ie *ioterr.Error
if !errors.As(err, &ie) {
t.Errorf("Expected error type: %T, actual: %T", ie, err)
Expand All @@ -106,7 +107,7 @@ func TestPresignDialer(t *testing.T) {
if err != nil {
t.Fatal(err)
}
ps := presigner.New(cfg)
ps := presigner.New(&cfg)

ln, err := net.Listen("tcp", ":0")
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions presigner/presign.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ const (

// Presigner is an AWS v4 signer wrapper for AWS IoT.
type Presigner struct {
cfg aws.Config
cfg *aws.Config
}

// New returns new AWS v4 signer wrapper for AWS IoT.
func New(c aws.Config) *Presigner {
func New(c *aws.Config) *Presigner {
return &Presigner{
cfg: c,
}
Expand Down
6 changes: 3 additions & 3 deletions presigner/presign_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ func TestPresignWss(t *testing.T) {
if err != nil {
t.Fatal(err)
}
ps := New(cfg)
ps := New(&cfg)
wssURL, err := ps.PresignWss(ctx, "test.iot.world-1.amazonaws.com", time.Hour*24, time.Unix(0, 0))
if err != nil {
t.Error(err)
Expand All @@ -65,7 +65,7 @@ func TestPresignWss_WithoutSessionToken(t *testing.T) {
if err != nil {
t.Fatal(err)
}
ps := New(cfg)
ps := New(&cfg)
wssURL, err := ps.PresignWss(ctx, "test.iot.world-1.amazonaws.com", time.Hour*24, time.Unix(0, 0))
if err != nil {
t.Error(err)
Expand All @@ -84,7 +84,7 @@ func ExamplePresigner_PresignWssNow() {
if err != nil {
panic(err)
}
ps := New(cfg)
ps := New(&cfg)
wssURL, err := ps.PresignWssNow(ctx, "test.iot.world-1.amazonaws.com")
if err != nil {
panic(err)
Expand Down
2 changes: 1 addition & 1 deletion tunnel/cmd/secure-tunnel-server/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func app(ctx context.Context, args []string) error {
return fmt.Errorf("failed to load AWS config: %w", err)
}

dialer, err := awsiot.NewPresignDialer(cfg, *mqttEndpoint,
dialer, err := awsiot.NewPresignDialer(&cfg, *mqttEndpoint,
mqtt.WithConnStateHandler(func(s mqtt.ConnState, err error) {
log.Printf("info: MQTT connection state changed (%s)", s)
}),
Expand Down

0 comments on commit 02c157e

Please sign in to comment.