aboutsummaryrefslogtreecommitdiff
path: root/src/rpc/server.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/rpc/server.cpp')
-rw-r--r--src/rpc/server.cpp14
1 files changed, 6 insertions, 8 deletions
diff --git a/src/rpc/server.cpp b/src/rpc/server.cpp
index d06a9142b6..23149baa6d 100644
--- a/src/rpc/server.cpp
+++ b/src/rpc/server.cpp
@@ -88,20 +88,18 @@ void RPCTypeCheck(const UniValue& params,
}
void RPCTypeCheckObj(const UniValue& o,
- const map<string, UniValue::VType>& typesExpected,
- bool fAllowNull,
- bool fStrict)
+ const map<string, UniValueType>& typesExpected,
+ bool fAllowNull,
+ bool fStrict)
{
- BOOST_FOREACH(const PAIRTYPE(string, UniValue::VType)& t, typesExpected)
- {
+ for (const auto& t : typesExpected) {
const UniValue& v = find_value(o, t.first);
if (!fAllowNull && v.isNull())
throw JSONRPCError(RPC_TYPE_ERROR, strprintf("Missing %s", t.first));
- if (!((v.type() == t.second) || (fAllowNull && (v.isNull()))))
- {
+ if (!(t.second.typeAny || v.type() == t.second.type || (fAllowNull && v.isNull()))) {
string err = strprintf("Expected type %s for %s, got %s",
- uvTypeName(t.second), t.first, uvTypeName(v.type()));
+ uvTypeName(t.second.type), t.first, uvTypeName(v.type()));
throw JSONRPCError(RPC_TYPE_ERROR, err);
}
}