queryroutes: set queryroutes numRoutes param default to 10

Fix an inconsistency between the gRPC/CLI queryroutes implementations.
Ensure that the numRoutes param always defaults to 10.
This commit is contained in:
Tom Kirkpatrick 2018-10-30 23:12:01 +01:00
parent 4da1c867c3
commit b3c78d7110
No known key found for this signature in database
GPG Key ID: 72203A8EC5967EA8
2 changed files with 13 additions and 7 deletions

View File

@ -2671,7 +2671,7 @@ var queryRoutesCommand = cli.Command{
},
cli.Int64Flag{
Name: "num_max_routes",
Usage: "the max number of routes to be returned (default: 10)",
Usage: "the max number of routes to be returned",
Value: 10,
},
cli.Int64Flag{

View File

@ -3443,6 +3443,12 @@ func (r *rpcServer) QueryRoutes(ctx context.Context,
feeLimit := calculateFeeLimit(in.FeeLimit, amtMSat)
// numRoutes will default to 10 if not specified explicitly.
numRoutesIn := uint32(in.NumRoutes)
if numRoutesIn == 0 {
numRoutesIn = 10
}
// Query the channel router for a possible path to the destination that
// can carry `in.Amt` satoshis _including_ the total fee required on
// the route.
@ -3452,11 +3458,11 @@ func (r *rpcServer) QueryRoutes(ctx context.Context,
)
if in.FinalCltvDelta == 0 {
routes, findErr = r.server.chanRouter.FindRoutes(
pubKey, amtMSat, feeLimit, uint32(in.NumRoutes),
pubKey, amtMSat, feeLimit, numRoutesIn,
)
} else {
routes, findErr = r.server.chanRouter.FindRoutes(
pubKey, amtMSat, feeLimit, uint32(in.NumRoutes),
pubKey, amtMSat, feeLimit, numRoutesIn,
uint16(in.FinalCltvDelta),
)
}
@ -3467,9 +3473,9 @@ func (r *rpcServer) QueryRoutes(ctx context.Context,
// As the number of returned routes can be less than the number of
// requested routes, we'll clamp down the length of the response to the
// minimum of the two.
numRoutes := int32(len(routes))
if in.NumRoutes < numRoutes {
numRoutes = in.NumRoutes
numRoutes := uint32(len(routes))
if numRoutesIn < numRoutes {
numRoutes = numRoutesIn
}
// For each valid route, we'll convert the result into the format
@ -3477,7 +3483,7 @@ func (r *rpcServer) QueryRoutes(ctx context.Context,
routeResp := &lnrpc.QueryRoutesResponse{
Routes: make([]*lnrpc.Route, 0, in.NumRoutes),
}
for i := int32(0); i < numRoutes; i++ {
for i := uint32(0); i < numRoutes; i++ {
routeResp.Routes = append(
routeResp.Routes, r.marshallRoute(routes[i]),
)