8859c36234
https://storjlabs.atlassian.net/browse/V3-2545 Change-Id: I1dd54a0c77cb4905bb1f350beeb82c6f7700ee70
41 lines
880 B
Go
41 lines
880 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.DialAddressID(ctx, address, id)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
return &client{
|
|
conn: conn,
|
|
client: pb.NewDRPCContactClient(conn.Raw()),
|
|
}, 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()
|
|
}
|