diff options
author | Sadie Powell <sadie@witchery.services> | 2025-02-24 03:21:42 +0000 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-02-24 03:41:06 +0000 |
commit | a111b40560bf305653b07d8f7289484793a32588 (patch) | |
tree | b90c6a1070120b5115641414ac2c806efde7c8fa /modules/extra/xmlrpc.cpp | |
parent | 2ccd182d2e6689877eba911452eaa8a06e82ac0b (diff) |
Allow use of a non-map type as the root RPC element.
Diffstat (limited to 'modules/extra/xmlrpc.cpp')
-rw-r--r-- | modules/extra/xmlrpc.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/modules/extra/xmlrpc.cpp b/modules/extra/xmlrpc.cpp index 1d9ab7762..681b230dc 100644 --- a/modules/extra/xmlrpc.cpp +++ b/modules/extra/xmlrpc.cpp @@ -116,7 +116,6 @@ public: Anope::string param; if (xmlrpc_value_type(value) != XMLRPC_TYPE_STRING) { - // TODO: error; xmlrpc_env_set_fault(&env, RPC::ERR_INVALID_REQUEST, "Anope XML-RPC only supports strings"); SendError(reply, env); xmlrpc_DECREF(value); @@ -160,8 +159,11 @@ public: return; } - auto *value = xmlrpc_struct_new(&env); - SerializeMap(env, value, request); + xmlrpc_value *value; + if (request.GetRoot()) + value = SerializeElement(env, request.GetRoot().value()); + else + value = xmlrpc_nil_new(&env); auto *response = xmlrpc_mem_block_new(&env, 0); xmlrpc_serialize_response(&env, response, value); |