* Fix potential buffer overflows in case snprintf buffer is too

small. Patch by Josef Drexler.

* Added 'view.persistance' command that makes downloads inserted into
that view persist across sessions. Only call on user-created views.

* Added 'ratio.*' commands that call the 'group.seeding.ratio.*'
equivalents.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1080 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2008-11-16 07:54:45 +00:00
parent de8a11c4fd
commit 7600a51039
13 changed files with 161 additions and 25 deletions
+17
View File
@@ -394,6 +394,21 @@ cmd_view_size_not_visible(__UNUSED rpc::target_type target, const torrent::Objec
return (*control->view_manager()->find_throw(rawArgs.as_string()))->size_not_visible();
}
torrent::Object
cmd_view_persistent(__UNUSED rpc::target_type target, const torrent::Object& rawArgs) {
const std::string& args = rawArgs.as_string();
core::View* view = *control->view_manager()->find_throw(args);
if (!view->get_filter().empty() || !view->get_event_added().empty() || !view->get_event_removed().empty())
throw torrent::input_error("Cannot set modified views as persitent.");
view->set_filter("d.views.has=" + args);
view->set_event_added("d.views.push_back_unique=" + args);
view->set_event_removed("d.views.remove=" + args);
return torrent::Object();
}
torrent::Object
cmd_ui_set_view(__UNUSED rpc::target_type target, const torrent::Object& rawArgs) {
control->ui()->download_list()->set_current_view(rawArgs.as_string());
@@ -451,6 +466,8 @@ initialize_command_ui() {
CMD_G_STRING("view.size", rak::ptr_fn(&cmd_view_size));
CMD_G_STRING("view.size_not_visible", rak::ptr_fn(&cmd_view_size_not_visible));
CMD_G_STRING("view.persistent", rak::ptr_fn(&cmd_view_persistent));
CMD_D_STRING("view.filter_download", rak::ptr_fn(&cmd_view_filter_download));
CMD_D_STRING("view.set_visible", rak::ptr_fn(&cmd_view_set_visible));
CMD_D_STRING("view.set_not_visible", rak::ptr_fn(&cmd_view_set_not_visible));