cmd/devp2p: add node filter for snap + fix arg error (#21950)
This commit is contained in:
parent
0b2f1446bb
commit
d7a64dc02b
@ -95,6 +95,7 @@ var filterFlags = map[string]nodeFilterC{
|
|||||||
"-min-age": {1, minAgeFilter},
|
"-min-age": {1, minAgeFilter},
|
||||||
"-eth-network": {1, ethFilter},
|
"-eth-network": {1, ethFilter},
|
||||||
"-les-server": {0, lesFilter},
|
"-les-server": {0, lesFilter},
|
||||||
|
"-snap": {0, snapFilter},
|
||||||
}
|
}
|
||||||
|
|
||||||
func parseFilters(args []string) ([]nodeFilter, error) {
|
func parseFilters(args []string) ([]nodeFilter, error) {
|
||||||
@ -104,15 +105,15 @@ func parseFilters(args []string) ([]nodeFilter, error) {
|
|||||||
if !ok {
|
if !ok {
|
||||||
return nil, fmt.Errorf("invalid filter %q", args[0])
|
return nil, fmt.Errorf("invalid filter %q", args[0])
|
||||||
}
|
}
|
||||||
if len(args) < fc.narg {
|
if len(args)-1 < fc.narg {
|
||||||
return nil, fmt.Errorf("filter %q wants %d arguments, have %d", args[0], fc.narg, len(args))
|
return nil, fmt.Errorf("filter %q wants %d arguments, have %d", args[0], fc.narg, len(args)-1)
|
||||||
}
|
}
|
||||||
filter, err := fc.fn(args[1:])
|
filter, err := fc.fn(args[1 : 1+fc.narg])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%s: %v", args[0], err)
|
return nil, fmt.Errorf("%s: %v", args[0], err)
|
||||||
}
|
}
|
||||||
filters = append(filters, filter)
|
filters = append(filters, filter)
|
||||||
args = args[fc.narg+1:]
|
args = args[1+fc.narg:]
|
||||||
}
|
}
|
||||||
return filters, nil
|
return filters, nil
|
||||||
}
|
}
|
||||||
@ -191,3 +192,13 @@ func lesFilter(args []string) (nodeFilter, error) {
|
|||||||
}
|
}
|
||||||
return f, nil
|
return f, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func snapFilter(args []string) (nodeFilter, error) {
|
||||||
|
f := func(n nodeJSON) bool {
|
||||||
|
var snap struct {
|
||||||
|
_ []rlp.RawValue `rlp:"tail"`
|
||||||
|
}
|
||||||
|
return n.N.Load(enr.WithEntry("snap", &snap)) == nil
|
||||||
|
}
|
||||||
|
return f, nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user