ed627144ed
Change-Id: Iaf9ae3aeef7305c937f2660c929744db2d88776c
44 lines
913 B
Go
44 lines
913 B
Go
// Copyright (C) 2019 Storj Labs, Inc.
|
|
// See LICENSE for copying information.
|
|
|
|
package contact
|
|
|
|
import (
|
|
"context"
|
|
|
|
"storj.io/common/pb"
|
|
"storj.io/common/rpc"
|
|
"storj.io/common/storj"
|
|
)
|
|
|
|
type client struct {
|
|
conn *rpc.Conn
|
|
client pb.DRPCContactClient
|
|
}
|
|
|
|
// dialNode dials the target contact endpoint
|
|
func dialNode(ctx context.Context, dialer rpc.Dialer, address string, id storj.NodeID) (*client, error) {
|
|
conn, err := dialer.DialNodeURL(ctx, storj.NodeURL{
|
|
ID: id,
|
|
Address: address,
|
|
})
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &client{
|
|
conn: conn,
|
|
client: pb.NewDRPCContactClient(conn),
|
|
}, nil
|
|
}
|
|
|
|
// pingNode pings a node
|
|
func (client *client) pingNode(ctx context.Context, req *pb.ContactPingRequest) (*pb.ContactPingResponse, error) {
|
|
return client.client.PingNode(ctx, req)
|
|
}
|
|
|
|
// Close closes the connection
|
|
func (client *client) Close() error {
|
|
return client.conn.Close()
|
|
}
|