RPC: don't cap page size in unsafe mode (#6329)

This commit is contained in:
gotjoshua
2021-04-12 12:51:56 +01:00
committed by GitHub
parent d0828f3454
commit f563bd4ff1
3 changed files with 18 additions and 9 deletions

View File

@@ -52,6 +52,7 @@ Friendly reminder: We have a [bug bounty program](https://hackerone.com/tendermi
### FEATURES
- [config] Add `--mode` flag and config variable. See [ADR-52](https://github.com/tendermint/tendermint/blob/master/docs/architecture/adr-052-tendermint-mode.md) @dongsam
- [rpc] /#6329 Don't cap page size in unsafe mode (@gotjoshua, @cmwaters)
### IMPROVEMENTS

View File

@@ -126,7 +126,9 @@ func validatePerPage(perPagePtr *int) int {
perPage := *perPagePtr
if perPage < 1 {
return defaultPerPage
} else if perPage > maxPerPage {
// in unsafe mode there is no max on the page size but in safe mode
// we cap it to maxPerPage
} else if perPage > maxPerPage && !env.Config.Unsafe {
return maxPerPage
}
return perPage

View File

@@ -58,17 +58,16 @@ func TestPaginationPage(t *testing.T) {
func TestPaginationPerPage(t *testing.T) {
cases := []struct {
totalCount int
perPage int
newPerPage int
}{
{5, 0, defaultPerPage},
{5, 1, 1},
{5, 2, 2},
{5, defaultPerPage, defaultPerPage},
{5, maxPerPage - 1, maxPerPage - 1},
{5, maxPerPage, maxPerPage},
{5, maxPerPage + 1, maxPerPage},
{0, defaultPerPage},
{1, 1},
{2, 2},
{defaultPerPage, defaultPerPage},
{maxPerPage - 1, maxPerPage - 1},
{maxPerPage, maxPerPage},
{maxPerPage + 1, maxPerPage},
}
for _, c := range cases {
@@ -79,4 +78,11 @@ func TestPaginationPerPage(t *testing.T) {
// nil case
p := validatePerPage(nil)
assert.Equal(t, defaultPerPage, p)
// test in unsafe mode
env.Config.Unsafe = true
perPage := 1000
p = validatePerPage(&perPage)
assert.Equal(t, perPage, p)
env.Config.Unsafe = false
}