mirror of
https://github.com/rakshasa/rtorrent.git
synced 2026-10-08 15:19:20 +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;
|
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:
|
default:
|
||||||
return xmlrpc_int_new(env, 0);
|
return xmlrpc_int_new(env, 0);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user