All patches in this commit were from Josef Drexler.

* Fixes a segfault when configure finds execinfo.h.

* Fix compile errors and warnings with g++ 4.3.x.

* Fixes an interoperability issue in the get_peers handling, now it
behaves according to the clarified BEP-0005. Also fixes a minor issue
of not being able to generate error packets.

* Fix a crash in scgi_local or scgi_port when calling freeaddrinfo
with a NULL pointer.

* Only check the filename cache for loading tied torrents (e.g. from
watch dirs) but not manually loaded ones via <enter>/<bs>, to allow
loading those again (ticket #1227).

* Fix display of multi-byte characters with attributes (i.e. utf-8
filenames in the file list), and make the list aware of characters
occupying two screen positions.


git-svn-id: svn://rakshasa.no/libtorrent/trunk/rtorrent@1064 e378c898-3ddf-0310-93e7-cc216c733640
This commit is contained in:
rakshasa
2008-08-26 20:42:57 +00:00
parent 5a700f34d9
commit c627d6dc0c
12 changed files with 112 additions and 45 deletions
+2 -1
View File
@@ -84,11 +84,12 @@ Download::~Download() {
void
Download::enable_udp_trackers(bool state) {
for (torrent::TrackerList::iterator itr = m_download.tracker_list()->begin(), last = m_download.tracker_list()->end(); itr != last; ++itr)
if ((*itr)->type() == torrent::Tracker::TRACKER_UDP)
if ((*itr)->type() == torrent::Tracker::TRACKER_UDP) {
if (state)
(*itr)->enable();
else
(*itr)->disable();
}
}
uint32_t
+2 -1
View File
@@ -71,11 +71,12 @@ DownloadStore::enable(bool lock) {
else
m_lockfile.set_path(std::string());
if (!m_lockfile.try_lock())
if (!m_lockfile.try_lock()) {
if (rak::error_number::current().is_bad_path())
throw torrent::input_error("Could not lock session directory: \"" + m_path + "\", " + rak::error_number::current().c_str());
else
throw torrent::input_error("Could not lock session directory: \"" + m_path + "\", held by \"" + m_lockfile.locked_by_as_string() + "\".");
}
}
void
+2 -1
View File
@@ -383,7 +383,8 @@ Manager::receive_http_failed(std::string msg) {
void
Manager::try_create_download(const std::string& uri, int flags, const command_list_type& commands) {
// If the path was attempted loaded before, skip it.
if (!(flags & create_raw_data) &&
if ((flags & create_tied) &&
!(flags & create_raw_data) &&
!is_network_uri(uri) &&
!file_status_cache()->insert(uri, 0))
return;