Skip to content

Commit f4a5fff

Browse files
author
Peter Spiess-Knafl
committed
bugfixes for debian sid
1 parent e3b5e92 commit f4a5fff

File tree

3 files changed

+28
-26
lines changed

3 files changed

+28
-26
lines changed

doc/manpage

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,9 @@ jsonrpcstub is a tool to generate C++ and JavaScript classes from a procedure sp
1919
.PP
2020
Generate C++ Stubs for Server and Client, the classes will be named AbstractStubServer and StubClient:
2121
.PP
22-
.Vb 1
22+
.B
2323
\& jsonrpcstub <spec.json> --cpp--server=AbstractStubServer<abstractserverstub.h> --cpp-client=StubClient
24-
.Ve
24+
.B
2525
.SH SEE ALSO
2626
https://github.com/cinemast/libjson\-rpc\-cpp
2727
.SH BUGS

src/jsonrpccpp/common/specificationparser.cpp

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -55,35 +55,37 @@ void SpecificationParser::GetProcedure (Json::Value &si
5555
{
5656
if (signature.isObject() && GetProcedureName(signature) != "")
5757
{
58-
if (signature[KEY_SPEC_PROCEDURE_PARAMETERS].isObject() || signature[KEY_SPEC_PROCEDURE_PARAMETERS].isArray())
58+
result.SetProcedureName(GetProcedureName(signature));
59+
if (signature.isMember(KEY_SPEC_RETURN_TYPE))
5960
{
60-
result.SetProcedureName(GetProcedureName(signature));
61-
if (signature.isMember(KEY_SPEC_RETURN_TYPE))
61+
result.SetProcedureType(RPC_METHOD);
62+
result.SetReturnType(toJsonType(signature[KEY_SPEC_RETURN_TYPE]));
63+
}
64+
else
65+
{
66+
result.SetProcedureType(RPC_NOTIFICATION);
67+
}
68+
if (signature.isMember(KEY_SPEC_PROCEDURE_PARAMETERS))
69+
{
70+
if (signature[KEY_SPEC_PROCEDURE_PARAMETERS].isObject() || signature[KEY_SPEC_PROCEDURE_PARAMETERS].isArray())
6271
{
63-
result.SetProcedureType(RPC_METHOD);
64-
result.SetReturnType(toJsonType(signature[KEY_SPEC_RETURN_TYPE]));
72+
if (signature[KEY_SPEC_PROCEDURE_PARAMETERS].isArray())
73+
{
74+
result.SetParameterDeclarationType(PARAMS_BY_POSITION);
75+
GetPositionalParameters(signature, result);
76+
}
77+
else if (signature[KEY_SPEC_PROCEDURE_PARAMETERS].isObject())
78+
{
79+
result.SetParameterDeclarationType(PARAMS_BY_NAME);
80+
GetNamedParameters(signature, result);
81+
}
6582
}
6683
else
6784
{
68-
result.SetProcedureType(RPC_NOTIFICATION);
85+
throw JsonRpcException(Errors::ERROR_SERVER_PROCEDURE_SPECIFICATION_SYNTAX,
86+
"Invalid signature types in fileds: "
87+
+ signature.toStyledString());
6988
}
70-
71-
if (signature.isMember(KEY_SPEC_PROCEDURE_PARAMETERS) && signature[KEY_SPEC_PROCEDURE_PARAMETERS].isArray())
72-
{
73-
result.SetParameterDeclarationType(PARAMS_BY_POSITION);
74-
GetPositionalParameters(signature, result);
75-
}
76-
else if (signature.isMember(KEY_SPEC_PROCEDURE_PARAMETERS) && signature[KEY_SPEC_PROCEDURE_PARAMETERS].isObject())
77-
{
78-
result.SetParameterDeclarationType(PARAMS_BY_NAME);
79-
GetNamedParameters(signature, result);
80-
}
81-
}
82-
else
83-
{
84-
throw JsonRpcException(Errors::ERROR_SERVER_PROCEDURE_SPECIFICATION_SYNTAX,
85-
"Invalid signature types in fileds: "
86-
+ signature.toStyledString());
8789
}
8890
}
8991
else

src/test/test_server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ BOOST_FIXTURE_TEST_CASE(test_server_v2_method_error, F)
159159
BOOST_CHECK_EQUAL(c.GetJsonResponse().isMember("result"),false);
160160

161161
//userspace exception
162-
c.SetRequest("{\"jsonrpc\":\"2.0\", \"id\": 1, \"method\": \"exceptionMethod\",\"params\":null}");
162+
c.SetRequest("{\"jsonrpc\":\"2.0\", \"id\": 1, \"method\": \"exceptionMethod\"}");
163163
BOOST_CHECK_EQUAL(c.GetJsonResponse()["error"]["code"], -32099);
164164
BOOST_CHECK_EQUAL(c.GetJsonResponse()["error"]["message"], "User exception");
165165
BOOST_CHECK_EQUAL(c.GetJsonResponse().isMember("result"),false);

0 commit comments

Comments
 (0)