cmd/lncli: ensure gRPC client is closed after request
This commit is contained in:
parent
3aaf291409
commit
f4f92bb8e7
@ -44,7 +44,8 @@ var NewAddressCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func newAddress(ctx *cli.Context) error {
|
func newAddress(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
stringAddrType := ctx.Args().Get(0)
|
stringAddrType := ctx.Args().Get(0)
|
||||||
|
|
||||||
@ -95,7 +96,8 @@ var SendCoinsCommand = cli.Command{
|
|||||||
|
|
||||||
func sendCoins(ctx *cli.Context) error {
|
func sendCoins(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.SendCoinsRequest{
|
req := &lnrpc.SendCoinsRequest{
|
||||||
Addr: ctx.String("addr"),
|
Addr: ctx.String("addr"),
|
||||||
@ -127,7 +129,8 @@ func sendMany(ctx *cli.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
txid, err := client.SendMany(ctxb, &lnrpc.SendManyRequest{amountToAddr})
|
txid, err := client.SendMany(ctxb, &lnrpc.SendManyRequest{amountToAddr})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -154,7 +157,8 @@ var ConnectCommand = cli.Command{
|
|||||||
|
|
||||||
func connectPeer(ctx *cli.Context) error {
|
func connectPeer(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
targetAddress := ctx.Args().Get(0)
|
targetAddress := ctx.Args().Get(0)
|
||||||
splitAddr := strings.Split(targetAddress, "@")
|
splitAddr := strings.Split(targetAddress, "@")
|
||||||
@ -225,7 +229,8 @@ var OpenChannelCommand = cli.Command{
|
|||||||
func openChannel(ctx *cli.Context) error {
|
func openChannel(ctx *cli.Context) error {
|
||||||
// TODO(roasbeef): add deadline to context
|
// TODO(roasbeef): add deadline to context
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
if ctx.Int("peer_id") != 0 && ctx.String("node_key") != "" {
|
if ctx.Int("peer_id") != 0 && ctx.String("node_key") != "" {
|
||||||
return fmt.Errorf("both peer_id and lightning_id cannot be set " +
|
return fmt.Errorf("both peer_id and lightning_id cannot be set " +
|
||||||
@ -322,7 +327,8 @@ var CloseChannelCommand = cli.Command{
|
|||||||
|
|
||||||
func closeChannel(ctx *cli.Context) error {
|
func closeChannel(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
txid, err := chainhash.NewHashFromStr(ctx.String("funding_txid"))
|
txid, err := chainhash.NewHashFromStr(ctx.String("funding_txid"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -383,7 +389,8 @@ var ListPeersCommand = cli.Command{
|
|||||||
|
|
||||||
func listPeers(ctx *cli.Context) error {
|
func listPeers(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ListPeersRequest{}
|
req := &lnrpc.ListPeersRequest{}
|
||||||
resp, err := client.ListPeers(ctxb, req)
|
resp, err := client.ListPeers(ctxb, req)
|
||||||
@ -411,7 +418,8 @@ var WalletBalanceCommand = cli.Command{
|
|||||||
|
|
||||||
func walletBalance(ctx *cli.Context) error {
|
func walletBalance(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.WalletBalanceRequest{
|
req := &lnrpc.WalletBalanceRequest{
|
||||||
WitnessOnly: ctx.Bool("witness_only"),
|
WitnessOnly: ctx.Bool("witness_only"),
|
||||||
@ -433,7 +441,8 @@ var ChannelBalanceCommand = cli.Command{
|
|||||||
|
|
||||||
func channelBalance(ctx *cli.Context) error {
|
func channelBalance(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ChannelBalanceRequest{}
|
req := &lnrpc.ChannelBalanceRequest{}
|
||||||
resp, err := client.ChannelBalance(ctxb, req)
|
resp, err := client.ChannelBalance(ctxb, req)
|
||||||
@ -453,7 +462,8 @@ var GetInfoCommand = cli.Command{
|
|||||||
|
|
||||||
func getInfo(ctx *cli.Context) error {
|
func getInfo(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.GetInfoRequest{}
|
req := &lnrpc.GetInfoRequest{}
|
||||||
resp, err := client.GetInfo(ctxb, req)
|
resp, err := client.GetInfo(ctxb, req)
|
||||||
@ -489,7 +499,8 @@ var PendingChannelsCommand = cli.Command{
|
|||||||
|
|
||||||
func pendingChannels(ctx *cli.Context) error {
|
func pendingChannels(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
var channelStatus lnrpc.ChannelStatus
|
var channelStatus lnrpc.ChannelStatus
|
||||||
switch {
|
switch {
|
||||||
@ -529,7 +540,8 @@ var ListChannelsCommand = cli.Command{
|
|||||||
|
|
||||||
func listChannels(ctx *cli.Context) error {
|
func listChannels(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ListChannelsRequest{}
|
req := &lnrpc.ListChannelsRequest{}
|
||||||
resp, err := client.ListChannels(ctxb, req)
|
resp, err := client.ListChannels(ctxb, req)
|
||||||
@ -575,7 +587,8 @@ var SendPaymentCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func sendPaymentCommand(ctx *cli.Context) error {
|
func sendPaymentCommand(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
var req *lnrpc.SendRequest
|
var req *lnrpc.SendRequest
|
||||||
if ctx.String("pay_req") != "" {
|
if ctx.String("pay_req") != "" {
|
||||||
@ -657,7 +670,8 @@ var AddInvoiceCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func addInvoice(ctx *cli.Context) error {
|
func addInvoice(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
preimage, err := hex.DecodeString(ctx.String("preimage"))
|
preimage, err := hex.DecodeString(ctx.String("preimage"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -707,7 +721,8 @@ var LookupInvoiceCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func lookupInvoice(ctx *cli.Context) error {
|
func lookupInvoice(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
rHash, err := hex.DecodeString(ctx.String("rhash"))
|
rHash, err := hex.DecodeString(ctx.String("rhash"))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -743,7 +758,8 @@ var ListInvoicesCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func listInvoices(ctx *cli.Context) error {
|
func listInvoices(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
pendingOnly := true
|
pendingOnly := true
|
||||||
if !ctx.Bool("pending_only") {
|
if !ctx.Bool("pending_only") {
|
||||||
@ -779,7 +795,8 @@ var DescribeGraphCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func describeGraph(ctx *cli.Context) error {
|
func describeGraph(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ChannelGraphRequest{}
|
req := &lnrpc.ChannelGraphRequest{}
|
||||||
|
|
||||||
@ -867,7 +884,6 @@ func drawChannelGraph(graph *lnrpc.ChannelGraph) error {
|
|||||||
//
|
//
|
||||||
// TODO(roasbeef): should be able to get around this?
|
// TODO(roasbeef): should be able to get around this?
|
||||||
nodeID := fmt.Sprintf(`"%v"`, truncateStr(node.PubKey, numKeyChars))
|
nodeID := fmt.Sprintf(`"%v"`, truncateStr(node.PubKey, numKeyChars))
|
||||||
fmt.Println(nodeID)
|
|
||||||
|
|
||||||
graphCanvas.AddNode(graphName, nodeID, gographviz.Attrs{})
|
graphCanvas.AddNode(graphName, nodeID, gographviz.Attrs{})
|
||||||
}
|
}
|
||||||
@ -955,7 +971,8 @@ var ListPaymentsCommand = cli.Command{
|
|||||||
}
|
}
|
||||||
|
|
||||||
func listPayments(ctx *cli.Context) error {
|
func listPayments(ctx *cli.Context) error {
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ListPaymentsRequest{}
|
req := &lnrpc.ListPaymentsRequest{}
|
||||||
|
|
||||||
@ -984,7 +1001,8 @@ var GetChanInfoCommand = cli.Command{
|
|||||||
|
|
||||||
func getChanInfo(ctx *cli.Context) error {
|
func getChanInfo(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.ChanInfoRequest{
|
req := &lnrpc.ChanInfoRequest{
|
||||||
ChanId: uint64(ctx.Int("chan_id")),
|
ChanId: uint64(ctx.Int("chan_id")),
|
||||||
@ -1016,7 +1034,8 @@ var GetNodeInfoCommand = cli.Command{
|
|||||||
|
|
||||||
func getNodeInfo(ctx *cli.Context) error {
|
func getNodeInfo(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.NodeInfoRequest{
|
req := &lnrpc.NodeInfoRequest{
|
||||||
PubKey: ctx.String("pub_key"),
|
PubKey: ctx.String("pub_key"),
|
||||||
@ -1051,7 +1070,8 @@ var QueryRouteCommand = cli.Command{
|
|||||||
|
|
||||||
func queryRoute(ctx *cli.Context) error {
|
func queryRoute(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.RouteRequest{
|
req := &lnrpc.RouteRequest{
|
||||||
PubKey: ctx.String("dest"),
|
PubKey: ctx.String("dest"),
|
||||||
@ -1077,7 +1097,8 @@ var GetNetworkInfoCommand = cli.Command{
|
|||||||
|
|
||||||
func getNetworkInfo(ctx *cli.Context) error {
|
func getNetworkInfo(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.NetworkInfoRequest{}
|
req := &lnrpc.NetworkInfoRequest{}
|
||||||
|
|
||||||
@ -1109,7 +1130,8 @@ var DebugLevel = cli.Command{
|
|||||||
|
|
||||||
func debugLevel(ctx *cli.Context) error {
|
func debugLevel(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.DebugLevelRequest{
|
req := &lnrpc.DebugLevelRequest{
|
||||||
Show: ctx.Bool("show"),
|
Show: ctx.Bool("show"),
|
||||||
@ -1140,7 +1162,8 @@ var DecodePayReq = cli.Command{
|
|||||||
|
|
||||||
func decodePayReq(ctx *cli.Context) error {
|
func decodePayReq(ctx *cli.Context) error {
|
||||||
ctxb := context.Background()
|
ctxb := context.Background()
|
||||||
client := getClient(ctx)
|
client, cleanUp := getClient(ctx)
|
||||||
|
defer cleanUp()
|
||||||
|
|
||||||
req := &lnrpc.PayReqString{
|
req := &lnrpc.PayReqString{
|
||||||
PayReq: ctx.String("pay_req"),
|
PayReq: ctx.String("pay_req"),
|
||||||
|
@ -15,9 +15,14 @@ func fatal(err error) {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func getClient(ctx *cli.Context) lnrpc.LightningClient {
|
func getClient(ctx *cli.Context) (lnrpc.LightningClient, func()) {
|
||||||
conn := getClientConn(ctx)
|
conn := getClientConn(ctx)
|
||||||
return lnrpc.NewLightningClient(conn)
|
|
||||||
|
cleanUp := func() {
|
||||||
|
conn.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
return lnrpc.NewLightningClient(conn), cleanUp
|
||||||
}
|
}
|
||||||
|
|
||||||
func getClientConn(ctx *cli.Context) *grpc.ClientConn {
|
func getClientConn(ctx *cli.Context) *grpc.ClientConn {
|
||||||
|
Loading…
Reference in New Issue
Block a user