merged RC_1_1 into master

This commit is contained in:
arvidn 2017-10-17 09:38:51 +02:00
commit 244d18dcf8
4 changed files with 21 additions and 10 deletions

View File

@ -77,6 +77,8 @@
* resume data no longer has timestamps of files * resume data no longer has timestamps of files
* require C++11 to build libtorrent * require C++11 to build libtorrent
* fix full allocation failure on APFS
1.1.5 release 1.1.5 release
* fix infinite loop when parsing certain invalid magnet links * fix infinite loop when parsing certain invalid magnet links

View File

@ -338,6 +338,7 @@ void bind_alert()
class_<torrent_alert, bases<alert>, noncopyable>( class_<torrent_alert, bases<alert>, noncopyable>(
"torrent_alert", no_init) "torrent_alert", no_init)
.add_property("handle", make_getter(&torrent_alert::handle, by_value())) .add_property("handle", make_getter(&torrent_alert::handle, by_value()))
.add_property("torrent_name", &torrent_alert::torrent_name)
; ;
class_<tracker_alert, bases<torrent_alert>, noncopyable>( class_<tracker_alert, bases<torrent_alert>, noncopyable>(

View File

@ -336,6 +336,8 @@ class test_alerts(unittest.TestCase):
ses.wait_for_alert(1000) # milliseconds ses.wait_for_alert(1000) # milliseconds
alerts = ses.pop_alerts() alerts = ses.pop_alerts()
for a in alerts: for a in alerts:
if a.what() == 'add_torrent_alert':
self.assertEquals(a.torrent_name, 'temp')
print(a.message()) print(a.message())
for field_name in dir(a): for field_name in dir(a):
if field_name.startswith('__'): if field_name.startswith('__'):

View File

@ -1193,17 +1193,23 @@ namespace {
fstore_t f = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, s, 0}; fstore_t f = {F_ALLOCATECONTIG, F_PEOFPOSMODE, 0, s, 0};
if (fcntl(native_handle(), F_PREALLOCATE, &f) < 0) if (fcntl(native_handle(), F_PREALLOCATE, &f) < 0)
{ {
if (errno != ENOSPC) // It appears Apple's new filesystem (APFS) does not
// support this control message and fails with EINVAL
// if so, just skip it
if (errno != EINVAL)
{ {
ec.assign(errno, system_category()); if (errno != ENOSPC)
return false; {
} ec.assign(errno, system_category());
// ok, let's try to allocate non contiguous space then return false;
f.fst_flags = F_ALLOCATEALL; }
if (fcntl(native_handle(), F_PREALLOCATE, &f) < 0) // ok, let's try to allocate non contiguous space then
{ f.fst_flags = F_ALLOCATEALL;
ec.assign(errno, system_category()); if (fcntl(native_handle(), F_PREALLOCATE, &f) < 0)
return false; {
ec.assign(errno, system_category());
return false;
}
} }
} }
#endif // F_PREALLOCATE #endif // F_PREALLOCATE