Skip to content

Commit

Permalink
change error for invalid feature
Browse files Browse the repository at this point in the history
  • Loading branch information
mvadari committed Jul 11, 2024
1 parent e8602b8 commit 7be3e0d
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
23 changes: 20 additions & 3 deletions src/test/rpc/Feature_test.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -229,9 +229,26 @@ class Feature_test : public beast::unit_test::suite
using namespace test::jtx;
Env env{*this};

auto jrr = env.rpc("feature", "AllTheThings")[jss::result];
BEAST_EXPECT(jrr[jss::error] == "badFeature");
BEAST_EXPECT(jrr[jss::error_message] == "Feature unknown or invalid.");
auto test_invalid_param = [&](auto const& param) {
Json::Value params;
params[jss::feature] = param;
auto jrr =
env.rpc("json", "feature", to_string(params))[jss::result];
BEAST_EXPECT(jrr[jss::error] == "invalidParams");
BEAST_EXPECT(jrr[jss::error_message] == "Invalid parameters.");
};

test_invalid_param(1);
test_invalid_param(1.1);
test_invalid_param(true);
test_invalid_param(Json::Value());

{
auto jrr = env.rpc("feature", "AllTheThings")[jss::result];
BEAST_EXPECT(jrr[jss::error] == "badFeature");
BEAST_EXPECT(
jrr[jss::error_message] == "Feature unknown or invalid.");
}
}

void
Expand Down
9 changes: 9 additions & 0 deletions src/xrpld/rpc/handlers/Feature1.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,15 @@ doFeature(RPC::JsonContext& context)
if (context.app.config().reporting())
return rpcError(rpcREPORTING_UNSUPPORTED);

if (context.params.isMember(jss::feature))
{
// ensure that the `feature` param is a string`
if (!context.params[jss::feature].isString())
{
return rpcError(rpcINVALID_PARAMS);
}
}

bool const isAdmin = context.role == Role::ADMIN;
// Get majority amendment status
majorityAmendments_t majorities;
Expand Down

0 comments on commit 7be3e0d

Please sign in to comment.