Max Kellermann
0d98677212
playlist/flac: copy the URI to fix use-after-free bug
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/508
2019-03-14 19:30:33 +01:00
Max Kellermann
38f0c16904
system/UniqueFileDescriptor: add CreatePipeNonBlock()
2019-02-27 23:30:56 +01:00
Max Kellermann
4fbf6b6c95
net/StaticSocketAddress: remove GetAddress()
2019-02-27 23:26:59 +01:00
Max Kellermann
1f8ff48168
net/StaticSocketAddress: add GetLocalRaw()
2019-02-27 23:26:00 +01:00
Max Kellermann
20b6e0d684
net/SocketDescriptor: add SetTcpUserTimeout()
2019-02-27 23:22:12 +01:00
Max Kellermann
713c1f2ba9
Merge branch 'feature/playlist' of git://github.com/miccoli/MPD
2019-02-27 13:49:22 +01:00
Stefano Miccoli
b3a458338a
allow loading playlists specified as absolute filesystem paths
...
implement for the "load" command the same logic used for the "add"
command: local clients can load playlist specified as absolute paths.
For relative paths the old logic is preserved: first look for a stored
playlist, then look in the music directory.
2019-02-26 00:12:09 +01:00
Max Kellermann
44422b2b2f
event/ServerSocket, config/Net: abstract socket support
2019-02-25 13:08:33 +01:00
Thomas Zander
4c50a5e0b3
Ensure SEEK_SET is set on systems where stdio.h is not pulled in by accident.
2019-02-23 18:04:00 +01:00
Max Kellermann
83f7610dd1
storage/udisks2: move empty string check out of the fallback block in MapUTF8()
...
Even if the LocalStorage is available, return the "udisks://" URI when
the MapUTF8() parameter is an empty string. This fixes the mount URI
in the state file.
2019-02-22 15:07:40 +01:00
Max Kellermann
30e0644722
db/simple: call ReturnSong() on mounted database
...
Fixes a memory leak, or an assertion failure in the debug build.
2019-02-22 14:52:13 +01:00
Max Kellermann
3ada464020
db/simple: use C++11 initializer
2019-02-22 14:52:01 +01:00
Max Kellermann
d5983dd362
storage/udisks2: use the relative path
...
Closes #487
2019-02-22 14:41:56 +01:00
Max Kellermann
98258acc37
storage/udisks2: pass Path to SetMountPoint()
2019-02-22 14:41:56 +01:00
Max Kellermann
834ad7a58f
TagPrint: omit tags which were disabled by the client
...
Closes #471
2019-02-22 13:05:38 +01:00
Max Kellermann
e8f2f98048
tag/Mask: fix another typo, this time in `operator^=`
...
Similar to commit ff1ff1e54a
2019-02-22 12:44:36 +01:00
Max Kellermann
bbaeea1ab7
storage/udisks2: use existing mount point if already mounted
...
Fixes the "org.freedesktop.UDisks2.Error.AlreadyMounted" error.
Closes #485
2019-02-21 13:32:03 +01:00
Max Kellermann
0a3aee9d82
storage/udisks2: move code to SetMountPoint()
2019-02-21 13:31:59 +01:00
Max Kellermann
2434020971
storage/udisks2: adjust lambda indent
2019-02-21 13:31:57 +01:00
Max Kellermann
41e0eb7378
lib/dbus/udisks2: parse the MountPoints property
2019-02-21 13:28:26 +01:00
Max Kellermann
6adf964c81
lib/dbus/ReadIter: add dbus_message_iter_get_fixed_array() wrapper
2019-02-21 12:56:05 +01:00
Max Kellermann
b59f37bc0a
db/simple/Directory: close the Database in destructor
...
Fixes assertion failure.
2019-02-20 22:50:15 +01:00
Max Kellermann
cf2d171ccc
db/simple: reorder checks in assert() to fix assertion failure
...
`light_song.Get()` could cause an assertion failure because the
`Manual<>` object must not be used if uninitialized.
Regression by commit ebc006ab52
2019-02-20 21:24:01 +01:00
Max Kellermann
cc28a7b67f
Main: create Database on stack, move to Instance after Open() succeeded
...
This fixes use-after-free bug in SimpleDatabase::Close(), accessing
the `root` object which was already freed by the `catch` block in
Open().
By having the Database on the stack first, we can avoid calling
Close() on the failed-to-open Database from Instance's destructor.
Closes #482
2019-02-20 20:50:28 +01:00
Max Kellermann
8b5c33cecd
Instance: use std::unique_ptr<> to manage the Database pointer
2019-02-20 20:48:20 +01:00
Max Kellermann
6c28adbcd2
db/Plugin: use std::unique_ptr<> to manage Database pointers
2019-02-20 20:43:31 +01:00
Max Kellermann
2125e3ed57
db/simple/Directory: add `noexcept`
2019-02-20 20:39:49 +01:00
Max Kellermann
3da7ecfadf
mixer/pulse: add missing ParseFloat() check
2019-02-20 19:27:13 +01:00
Max Kellermann
5bb02bbd39
mixer/pulse: move `volume_scale_factor` up to improve struct packing
2019-02-20 19:25:55 +01:00
Max Kellermann
f11aa09f7c
mixer/pulse: add `const` to `volume_scale_factor`
2019-02-20 19:25:53 +01:00
Max Kellermann
02eb4752d3
mixer/pulse: use C++11 initializer
2019-02-20 19:25:45 +01:00
Max Kellermann
d9c3215584
mixer/pulse: rename `scale` to `scale_volume`
...
Make it less generic, to avoid clashes.
2019-02-20 19:23:11 +01:00
Clément Pit-Claudel
110e6d026b
mixer/pulse: Add a new 'scale' parameter to allow volumes above 100
...
Closes GH-479.
2019-02-17 16:14:52 -05:00
Max Kellermann
c0f57b8a8b
net/IPv[46]Address: update copyright
2019-02-19 13:00:45 +01:00
Max Kellermann
57633fbcb3
net/AllocatedSocketAddress: add methods IsV6Any(), IsV4Mapped()
2019-02-19 12:51:24 +01:00
Max Kellermann
864c87e6c0
net/SocketAddress: add method GetLocalPath()
2019-02-19 12:50:40 +01:00
Max Kellermann
1a516cf3c0
net/AllocatedSocketAddress: add method GetLocalRaw()
2019-02-19 12:43:16 +01:00
Max Kellermann
5c25499c5e
lib/cdio/Paranoia: add method GetDiscSectorRange()
2019-02-19 12:40:36 +01:00
Max Kellermann
da4bb4c298
fs/io/OutputStream: update include guard
2019-02-19 12:39:29 +01:00
Max Kellermann
5b8ff61799
fs/io/BufferedOutputStream: add WithBufferedOutputStream()
2019-02-19 12:37:53 +01:00
Max Kellermann
56bded07b1
system/UniqueFileDescriptor: import std::swap
2019-02-19 12:36:54 +01:00
Max Kellermann
db144a43ad
system/Open: add OpenWriteOnly(), OpenDirectory()
2019-02-19 12:16:41 +01:00
Max Kellermann
5965f62b56
system/EpollFD: include cleanup
2019-02-19 11:51:52 +01:00
Max Kellermann
05aa9f72a9
util/StringView: add SkipPrefix(), RemoveSuffix()
2019-02-19 11:51:32 +01:00
Max Kellermann
281461f0f0
nfs: work around assertion failure on exception during program init
...
Closes #477
2019-02-15 18:33:58 +01:00
Max Kellermann
f70eb63879
Instance: eliminate FinishShutdownUpdate(), move code to destructor
2019-02-15 18:20:11 +01:00
Max Kellermann
99c23cf139
Instance: eliminate ShutdownDatabase(), move code to destructor
...
Destruct automatically, even if leaving the scope due to exception
being thrown.
2019-02-15 18:04:23 +01:00
Max Kellermann
e9c45a9140
playlist/Registry: add RAII class
2019-02-05 23:03:29 +01:00
Max Kellermann
a065c6e6b9
Main: use AtScopeExit() to call DeinitFS()
2019-02-05 23:02:50 +01:00
Max Kellermann
feb5ff9bd2
Mapper: remove empty function mapper_finish()
2019-02-05 23:01:09 +01:00
Max Kellermann
98c47d9d36
Instance: remove FinishShutdownPartitions()
...
The list of partitions is cleared automatically.
2019-02-05 22:53:02 +01:00
Max Kellermann
6c67408944
event/Loop: add flag `alive`
...
This replaces the old `dead` flag which was unreliable; it was `false`
if the EventThread was not yet started, which could cause deadlocks in
BlockingCall().
2019-02-05 22:38:45 +01:00
Max Kellermann
261a816b21
command/AllCommands: remove empty function command_finish()
2019-02-05 22:15:41 +01:00
Max Kellermann
7a23c123c8
decoder/List: add RAII class
2019-02-05 22:12:22 +01:00
Max Kellermann
e85b24bee0
decoder/List: add `noexcept`
2019-02-05 22:11:51 +01:00
Max Kellermann
9e73ea77b4
input/Init: add RAII class
2019-02-05 22:07:49 +01:00
Max Kellermann
848f6aa5ab
Main: stop io_thread and rtio_thread automatically
...
They will be stopped by ~EventThread() when the `Instance` is deleted.
2019-02-05 21:49:59 +01:00
Max Kellermann
c9ba4f3f9c
archive/List: add RAII class
2019-02-05 21:40:07 +01:00
Max Kellermann
c0e9246a66
archive/List: add `noexcept`
2019-02-05 21:38:46 +01:00
Max Kellermann
096c23f27d
unix/SignalHandlers: add RAII class
2019-02-05 21:36:51 +01:00
Max Kellermann
40bde1eac9
unix/SignalHandlers: add `noexcept`
2019-02-05 21:36:35 +01:00
Max Kellermann
4b55ed17a9
LogInit: add `noexcept`
2019-02-05 21:36:35 +01:00
kaliko
ff1ff1e54a
Fixed typo in TagMask
2019-02-02 15:14:31 +01:00
Yue Wang
42b22187c8
[OSXOutput] Throw an error when device not found
...
Currently it falls back to system default device (either internal speaker or headphone) when device not found.
I believe it is a better to fail in this case, to make it better aligned with platforms (such as alsa).
2019-01-25 19:50:27 -08:00
Max Kellermann
cfe22502ab
fs/io/StdioOutputStream: add `noexcept`
2019-01-22 09:03:49 +01:00
Max Kellermann
d77b0c7dcd
net/SocketAddress: add `constexpr`
2019-01-22 08:42:35 +01:00
Max Kellermann
5cf889b676
util/WStringView: add missing include
2019-01-22 08:38:03 +01:00
Max Kellermann
ffc36d5255
input/buffered: implement seeking to end of file
...
Previously, a seek to the end of the file would cause an assertion
failure in SparseMap::Check() because the given offset was invalid.
Closes #453
2019-01-22 07:42:00 +01:00
Max Kellermann
0126276e2f
FileCommands: log irregular errors while looking for cover art
2019-01-21 22:21:11 +01:00
Max Kellermann
58d6ddab9e
FileCommands: catch all exceptions
2019-01-21 22:19:32 +01:00
Max Kellermann
05db6934eb
FileCommands: fix deadlock in "albumart" command
...
Must lock the mutex before calling any of the unprotected InputStream methods.
Closes #462
2019-01-21 22:16:46 +01:00
Max Kellermann
02c68c5cdb
net/HostParser: add `noexcept`
2019-01-21 21:20:43 +01:00
Max Kellermann
b02fee7309
util/PrintException: support "const char *"
2019-01-21 21:19:35 +01:00
Max Kellermann
424f75c9e1
util/OffsetPointer: remove redundant `inline` keywords from `constexpr` functions
2019-01-21 21:19:09 +01:00
Max Kellermann
f6e1176f97
util/CharUtil: remove redundant `inline` keywords from `constexpr` functions
2019-01-21 21:18:23 +01:00
Max Kellermann
e4700c0a27
util/Cast: remove redundant `inline` keywords from `constexpr` functions
2019-01-21 21:17:58 +01:00
Max Kellermann
cf23fd8774
fs/io/FileOutputStream: add constructor with directory fd
2019-01-21 21:10:02 +01:00
Max Kellermann
dee8872395
fs/io/FileOutputStream: move code to Open()
2019-01-21 21:09:34 +01:00
Max Kellermann
4ba9357a9c
input/CdioParanoia: C++ wrappers for libcdio types
2019-01-21 20:20:20 +01:00
Max Kellermann
754f4048a8
output/shout: evaluate `tls` option only if TLS is enabled in libshout
...
Fixes build failure after commit
0cea67ee70
2019-01-21 14:36:43 +01:00
Max Kellermann
037bb07d08
db/VHelper: include DetachedSong.hxx to fix GCC 9 build failure
...
GCC 9's libstdc++ is unable to use forward-declared types as
std::vector item because the compiler wants to resolve `noexcept()` on
the item destructor.
2019-01-21 14:34:12 +01:00
Max Kellermann
87635c5268
input/CdioParanoia: use the new function names
2019-01-21 14:18:55 +01:00
Max Kellermann
528b4338f4
input/CdioParanoia: use cdio_cddap_free_messages() on recent library versions
2019-01-21 14:16:51 +01:00
Max Kellermann
c780b8bba9
input/CdioParanoia: remove useless cdda_messages() call
2019-01-21 12:36:59 +01:00
Max Kellermann
ca34f3250b
input/CdioParanoia: detect libcdio version at compile time
...
libcdio_paranoia was split from libcdio in version 90, and at the same
time, the header was moved from cdio/paranoia.h to
cdio/paranoia/paranoia.h. We can easily detect this version at
compile time which is faster than configure time.
2019-01-21 12:14:13 +01:00
Max Kellermann
008383f24a
python/build/libs.py: upgrade CURL to 7.63.0
2019-01-21 10:11:50 +01:00
Jörg Krause
4f7d52dbf2
meson: add fixed-point Vorbis (Tremor) decoder support
...
Re-add build support for the fixed-point Vorbis (Tremor) decoder, which
was dropped when switching from Autotools to Meson.
Note, that it is not possible to build both, the Vorbis and the Tremor
decoder.
Closes : #405
2019-01-21 08:35:17 +01:00
Max Kellermann
c7848da8f2
input/CdioParanoia: add `const` to pointer
2019-01-20 22:03:49 +01:00
Max Kellermann
10a6c5c57d
input/CdioParanoia: make variables more local
2019-01-20 21:59:57 +01:00
Max Kellermann
701fd1d939
net/IPv4Address: fix comment typo
2019-01-20 21:05:12 +01:00
Max Kellermann
d1bdea8edb
Merge branch 'shout_tls' of git://github.com/JakobOvrum/MPD
2019-01-20 21:03:42 +01:00
Jakob Ovrum
0cea67ee70
shout output plugin: add support for TLS
2019-01-19 17:36:14 +01:00
Thomas Klausner
3a0480a482
Add missing include of stdlib.h.
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/456
2019-01-15 16:52:40 +01:00
Max Kellermann
1fa99da3c2
net/IPv[46]Address: make the initializers even more portable
...
Similar to 5a5229b49943c7032d83ae665552b4dc3e334820: use more C++14
constexpr.
2019-01-14 19:21:07 +01:00
James D. Smith
22d669da18
Add APE mapping for album artist.
...
"De-facto" field mappings are available at http://wiki.hydrogenaud.io/index.php?title=Tag_Mapping .
2019-01-14 19:15:42 +01:00
Thomas Zander
772681f23d
Fix link_args for mDNSResponder on non-darwin platforms
2019-01-13 14:09:14 +01:00
Max Kellermann
7ec887eea2
Merge branch 'add-meson-dependencies' of git://github.com/jacobvosmaer/MPD
2019-01-04 19:06:49 +01:00
Max Kellermann
1477b64d4f
Merge branch 'patch-2' of git://github.com/HyShai/MPD
...
Closes #343
2019-01-04 19:04:52 +01:00
Zoltán Mizsei
f546e76490
Build fix. This struct is the same on Haiku and on Linux, still gcc
...
fails on it. This fixes.
2019-01-04 19:01:27 +01:00
Max Kellermann
7104ac963b
util/AllocatedArray: import std::swap
2018-12-28 17:18:41 +01:00