diff --git a/src/rpc/rpc_manager.cc b/src/rpc/rpc_manager.cc
index 62085711..7419f8b5 100644
--- a/src/rpc/rpc_manager.cc
+++ b/src/rpc/rpc_manager.cc
@@ -105,7 +105,7 @@ RpcManager::process(RPCType type, const char* in_buffer, uint32_t length, slot_r
return m_xmlrpc.process(in_buffer, length, callback);
} else {
- const std::string response = "faultCode-501faultStringXML-RPC not supported";
+ const std::string response = "faultCode-501faultStringXML-RPC not supported";
return callback(response.c_str(), response.size());
}
break;
diff --git a/src/rpc/xmlrpc_tinyxml2.cc b/src/rpc/xmlrpc_tinyxml2.cc
index 8be74295..8f2468f2 100644
--- a/src/rpc/xmlrpc_tinyxml2.cc
+++ b/src/rpc/xmlrpc_tinyxml2.cc
@@ -313,6 +313,7 @@ print_xmlrpc_fault(int faultCode, std::string faultString, tinyxml2::XMLPrinter*
printer->OpenElement("methodResponse", true);
printer->OpenElement("fault", true);
+ printer->OpenElement("value", true);
printer->OpenElement("struct", true);
printer->OpenElement("member", true);
@@ -340,6 +341,7 @@ print_xmlrpc_fault(int faultCode, std::string faultString, tinyxml2::XMLPrinter*
printer->CloseElement(true);
printer->CloseElement(true);
printer->CloseElement(true);
+ printer->CloseElement(true);
}
bool
diff --git a/test/rpc/xmlrpc_test.cc b/test/rpc/xmlrpc_test.cc
index 6bde0834..da35c121 100644
--- a/test/rpc/xmlrpc_test.cc
+++ b/test/rpc/xmlrpc_test.cc
@@ -67,35 +67,35 @@ std::vector> basic_requests =
std::make_tuple("Invalid - missing method",
"no_such_method41",
- "faultCode-506faultStringmethod 'no_such_method' not defined"),
+ "faultCode-506faultStringmethod 'no_such_method' not defined"),
std::make_tuple("Invalid - i8 target",
"xmlrpc_reflect41",
- "faultCode-500faultStringinvalid parameters: target must be a string"),
+ "faultCode-500faultStringinvalid parameters: target must be a string"),
std::make_tuple("Invalid - empty int tag",
"xmlrpc_reflect",
- "faultCode-501faultStringunable to parse empty integer"),
+ "faultCode-501faultStringunable to parse empty integer"),
std::make_tuple("Invalid - empty int text",
"xmlrpc_reflect",
- "faultCode-501faultStringunable to parse empty integer"),
+ "faultCode-501faultStringunable to parse empty integer"),
std::make_tuple("Invalid - broken XML",
"thodCall>test_a41faultCode-503faultStringError=XML_ERROR_PARSING_ELEMENT ErrorID=6 (0x6) Line number=1: XMLElement name=method"),
+ "faultCode-503faultStringError=XML_ERROR_PARSING_ELEMENT ErrorID=6 (0x6) Line number=1: XMLElement name=method"),
std::make_tuple("Invalid - non-integer i8",
"xmlrpc_reflectstring value",
- "faultCode-501faultStringunable to parse integer value"),
+ "faultCode-501faultStringunable to parse integer value"),
std::make_tuple("Invalid - float i8",
"xmlrpc_reflect3.14",
- "faultCode-501faultStringunable to parse integer value"),
+ "faultCode-501faultStringunable to parse integer value"),
std::make_tuple("Invalid - non-boolean boolean",
"xmlrpc_reflectstring value",
- "faultCode-501faultStringunknown boolean value: string value")
+ "faultCode-501faultStringunknown boolean value: string value")
};
void
@@ -134,7 +134,7 @@ XmlrpcTest::test_invalid_utf8() {
void
XmlrpcTest::test_size_limit() {
std::string input = "xmlrpc_reflect\xc3\x28";
- std::string expected = "faultCode-509faultStringContent size exceeds maximum XML-RPC limit";
+ std::string expected = "faultCode-509faultStringContent size exceeds maximum XML-RPC limit";
std::string output;
m_xmlrpc.set_size_limit(1);
m_xmlrpc.process(input.c_str(), input.size(), [&output](const char* c, uint32_t l){ output.append(c, l); return true;});