diff --git a/NEWS b/NEWS index 5b222be3c..45d2a107f 100644 --- a/NEWS +++ b/NEWS @@ -25,9 +25,14 @@ ver 0.21 (not yet released) - sndio: new mixer plugin * require GCC 5.0 -ver 0.20.16 (not yet released) +ver 0.20.16 (2018/02/03) +* output + - pulse: fix crash during auto-detection * database - simple: fix search within mount points + - upnp: enable IPv6 +* archive + - iso9660: libcdio 2.0 compatibility * fix crash in debug build on Haiku and other operating systems ver 0.20.15 (2018/01/05) diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index c0b3dd4ca..16a75f5e1 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -2,8 +2,8 @@ + android:versionCode="15" + android:versionName="0.20.16"> diff --git a/python/build/libs.py b/python/build/libs.py index a70cf5d1f..a46902a19 100644 --- a/python/build/libs.py +++ b/python/build/libs.py @@ -339,8 +339,8 @@ ffmpeg = FfmpegProject( ) curl = AutotoolsProject( - 'http://curl.haxx.se/download/curl-7.57.0.tar.xz', - 'f5f6fd3c72b7b8389969f4fb671ed8532fa9b5bb7a5cae7ca89bc1cea45c7878', + 'http://curl.haxx.se/download/curl-7.58.0.tar.xz', + '6a813875243609eb75f37fa72044e4ad618b55ec15a4eafdac2df6a7e800e3e3', 'lib/libcurl.a', [ '--disable-shared', '--enable-static', diff --git a/src/archive/plugins/Iso9660ArchivePlugin.cxx b/src/archive/plugins/Iso9660ArchivePlugin.cxx index a5d8f4d94..971f30275 100644 --- a/src/archive/plugins/Iso9660ArchivePlugin.cxx +++ b/src/archive/plugins/Iso9660ArchivePlugin.cxx @@ -113,7 +113,12 @@ Iso9660ArchiveFile::Visit(char *path, size_t length, size_t capacity, visitor.VisitArchiveEntry(path + 1); } } + +#if LIBCDIO_VERSION_NUM >= 20000 + iso9660_filelist_free(entlist); +#else _cdio_list_free (entlist, true); +#endif } static std::unique_ptr diff --git a/src/db/update/Queue.hxx b/src/db/update/Queue.hxx index 90373aab3..63a7acbc6 100644 --- a/src/db/update/Queue.hxx +++ b/src/db/update/Queue.hxx @@ -49,6 +49,10 @@ struct UpdateQueueItem { bool IsDefined() const { return id != 0; } + + void Clear() { + id = 0; + } }; class UpdateQueue { diff --git a/src/db/update/Service.cxx b/src/db/update/Service.cxx index d6c8e82ec..ded404424 100644 --- a/src/db/update/Service.cxx +++ b/src/db/update/Service.cxx @@ -250,7 +250,7 @@ UpdateService::RunDeferred() noexcept delete walk; walk = nullptr; - next = UpdateQueueItem(); + next.Clear(); idle_add(IDLE_UPDATE); diff --git a/src/lib/upnp/Init.cxx b/src/lib/upnp/Init.cxx index 33484539d..ae7a0d974 100644 --- a/src/lib/upnp/Init.cxx +++ b/src/lib/upnp/Init.cxx @@ -34,7 +34,11 @@ static unsigned upnp_ref; static void DoInit() { - auto code = UpnpInit(0, 0); +#ifdef UPNP_ENABLE_IPV6 + auto code = UpnpInit2(nullptr, 0); +#else + auto code = UpnpInit(nullptr, 0); +#endif if (code != UPNP_E_SUCCESS) throw FormatRuntimeError("UpnpInit() failed: %s", UpnpGetErrorMessage(code)); diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx index 7c5f9a551..07b6d9bb5 100644 --- a/src/output/plugins/PulseOutputPlugin.cxx +++ b/src/output/plugins/PulseOutputPlugin.cxx @@ -26,6 +26,7 @@ #include "../OutputAPI.hxx" #include "mixer/MixerList.hxx" #include "mixer/plugins/PulseMixerPlugin.hxx" +#include "util/ScopeExit.hxx" #include "Log.hxx" #include @@ -854,7 +855,10 @@ PulseOutput::TestDefaultDevice() try { const ConfigBlock empty; PulseOutput po(empty); + po.Enable(); + AtScopeExit(&po) { po.Disable(); }; po.WaitConnection(); + return true; } catch (...) { return false;