mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-08-08 11:12:31 +00:00
* Support conversion from Object dict_key type to XMLRPC.
git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1287 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
@@ -436,6 +436,32 @@ object_to_xmlrpc(xmlrpc_env* env, const torrent::Object& object) {
|
||||
return result;
|
||||
}
|
||||
|
||||
case torrent::Object::TYPE_DICT_KEY:
|
||||
{
|
||||
xmlrpc_value* result = xmlrpc_array_new(env);
|
||||
|
||||
xmlrpc_value* key_item = object_to_xmlrpc(env, object.as_dict_key());
|
||||
xmlrpc_array_append_item(env, result, key_item);
|
||||
xmlrpc_DECREF(key_item);
|
||||
|
||||
if (object.as_dict_obj().is_list()) {
|
||||
for (torrent::Object::list_const_iterator
|
||||
itr = object.as_dict_obj().as_list().begin(),
|
||||
last = object.as_dict_obj().as_list().end();
|
||||
itr != last; itr++) {
|
||||
xmlrpc_value* item = object_to_xmlrpc(env, *itr);
|
||||
xmlrpc_array_append_item(env, result, item);
|
||||
xmlrpc_DECREF(item);
|
||||
}
|
||||
} else {
|
||||
xmlrpc_value* arg_item = object_to_xmlrpc(env, object.as_dict_obj());
|
||||
xmlrpc_array_append_item(env, result, arg_item);
|
||||
xmlrpc_DECREF(arg_item);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
default:
|
||||
return xmlrpc_int_new(env, 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user