Max Kellermann
d01fb6730a
storage/curl: move start call out of the constructor
...
This can cause request completion in the I/O thread before this
constructor returns, leaving the object in an abstract state, causing
a crash due to pure virtual method call. We should not start the
request until this object is fully constructed.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/665
2019-12-23 13:37:58 +01:00
Max Kellermann
7bfe6a3304
test/run_storage: add command "stat"
2019-12-22 19:54:31 +01:00
Max Kellermann
9a577f8060
event/MultiSocketMonitor: add workaround for /dev/null
...
The ALSA "null" driver opens /dev/null and returns the file handle
from snd_pcm_poll_descriptors(), but /dev/null cannot be used with
epoll, the epoll_ctl() system call returns -EPERM. This means that
the ALSA output hangs, eventually freezing the whole MPD process.
This commit adds a workaround to the MultiSocketMonitor class which is
used by the ALSA output plugin.
Closes https://github.com/MusicPlayerDaemon/MPD/issues/695
2019-12-22 12:08:44 +01:00
Max Kellermann
d75a0d714e
event/MultiSocketMonitor: remove unnecessary friend
declaration
2019-12-22 12:08:44 +01:00
Max Kellermann
9be3a1554e
event/MultiSocketMonitor: remove duplicate IdleMonitor::Schedule() call
...
SetReady() does this already.
2019-12-22 12:08:10 +01:00
Max Kellermann
7764719513
event/MultiSocketMonitor: un-inline AddSocket()
2019-12-22 12:00:12 +01:00
Max Kellermann
dcbb9fe07c
event/Loop: round timeout up to avoid unnecessary wakeups
2019-12-22 11:58:31 +01:00
Max Kellermann
e3b347820a
event/MultiSocketMonitor: use std::exchange()
2019-12-20 13:42:35 +01:00
Max Kellermann
a84bf5a92e
event/MultiSocketMonitor: AddSocket() returns bool
2019-12-18 17:50:21 +01:00
Max Kellermann
732bdc800d
event/SocketMonitor: Schedule() returns bool
2019-12-18 17:46:33 +01:00
Max Kellermann
a8661b5931
increment version number to 0.21.18
2019-12-18 16:49:04 +01:00
Max Kellermann
5680a3a4b7
release v0.21.17
2019-12-16 23:32:44 +01:00
Max Kellermann
15ce8eb487
time/ISO8601: support omitting field separators
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/685
2019-12-16 23:31:29 +01:00
Max Kellermann
b7744be208
song/Filter: try ParseISO8601() first
...
Prepare for allowing ISO8601 time stamps without delimiters, such as
20191216, and prevent them from being interpreted as numeric UNIX time
stamps.
2019-12-16 23:31:29 +01:00
Max Kellermann
63c5d66016
time/ISO8601: support omitting minutes
2019-12-16 23:24:43 +01:00
Max Kellermann
d09bd9178f
time/ISO8601: support omitting seconds
2019-12-16 23:24:43 +01:00
Max Kellermann
7d8b1860c3
time/ISO8601: support time zone offset
2019-12-16 23:24:43 +01:00
Max Kellermann
b06825829b
time/ISO8601: allow omitting the "Z" suffix
...
And allow "Z" suffix after date.
2019-12-16 23:24:43 +01:00
Max Kellermann
ba4cd47fd8
time/ISO8601: allow omitting the time of day
2019-12-16 23:24:43 +01:00
Max Kellermann
bbe403f141
test/TestISO8601: unit test for time/ISO8601
2019-12-16 23:24:43 +01:00
Max Kellermann
5df2707d98
time/ISO8601: ParseISO8601() returns precision
2019-12-16 23:24:43 +01:00
Max Kellermann
4859ea468f
time/ISO8601: implement with strptime(), without ParseTimePoint()
...
Prepare for adding more flexible parsing.
2019-12-16 23:24:43 +01:00
Max Kellermann
2a8830db70
time/Convert: fallback TimeGm() implementation
...
Move code from Parser.cxx.
2019-12-16 23:24:38 +01:00
Max Kellermann
fed9b6fd74
time/Parser: use TimeGm()
2019-12-16 23:03:31 +01:00
Max Kellermann
b02890eb8a
time/Parser: explicitly initialize struct tm before strptime()
...
This is recommended by the strptime() manpage, because strptime() does
not initialize/set attributes which were not specified in the format
string.
2019-12-16 23:03:25 +01:00
Max Kellermann
da882a6eb6
time/Convert: include sys/time.h for struct timeval
...
Closes https://github.com/MusicPlayerDaemon/MPD/issues/562
2019-12-16 23:03:21 +01:00
Max Kellermann
aeb89aa9d6
time/ISO8601: forward-declare StringBuffer
2019-12-16 23:02:59 +01:00
Max Kellermann
f885807ecc
time/Convert: update copyright
2019-12-16 23:02:58 +01:00
Max Kellermann
b826fd71f0
time/Convert: mention exceptions
2019-12-16 23:02:57 +01:00
Max Kellermann
ae35df1126
zeroconf/AvahiPoll: move TimevalToChrono() to time/Convert.cxx
2019-12-16 23:02:45 +01:00
Max Kellermann
80e55f6bfc
time/Convert: add noexcept
2019-12-16 23:02:40 +01:00
Max Kellermann
e7411c0c4b
time/Convert: add pure
attributes
2019-12-16 23:02:38 +01:00
Max Kellermann
e9af692973
util/Time*: move to time/
2019-12-16 23:02:14 +01:00
Max Kellermann
0cf90ee8b6
decoder/mad: work around bogus -Wuninitialized in GCC 10
2019-12-16 23:01:31 +01:00
Max Kellermann
dc3c0c8866
pcm/Convert, ...: add missing include for std::runtime_error
2019-12-16 22:52:50 +01:00
Max Kellermann
1c46bb1ba6
lib/gcrypt/MD5: add missing include for uint8_t
2019-12-16 22:52:22 +01:00
Max Kellermann
2e8f42c6ad
util/StringBuffer: use std::size_t instead of size_t
2019-12-16 22:51:23 +01:00
Jacob Vosmaer
2b301ffd2c
lib/xiph: add missing meson dependency
2019-12-16 17:11:14 +01:00
Jacob Vosmaer
ef0765ca10
input: add missing boost meson dependency
2019-12-16 17:11:14 +01:00
Naglis Jonaitis
9766ac6db3
Fix typo in documentation
2019-12-16 17:09:45 +01:00
Max Kellermann
32799ff682
archive/zzip: improve error reporting
...
Most importantly, this commit translates ZZIP_ENOENT to
std::system_error(ENOENT) so IsFileNotFound() returns true and
find_stream_art() can suppress the log line.
2019-12-04 12:33:42 +01:00
Max Kellermann
ce093be12c
system/Error: add FormatFileNotFound()
2019-12-04 12:33:38 +01:00
Max Kellermann
2c276770f0
util/PrintException, ...: update copyright
2019-12-04 12:33:36 +01:00
Max Kellermann
75a592f629
system/Error: move code to IsErrno()
2019-12-04 12:33:33 +01:00
Max Kellermann
13ce07d181
output/shout: declare metadata as UTF-8
...
Apparently, Icecast defaults to ISO-8859-1 for MP3:
http://icecast.org/docs/icecast-2.4.0/config-file.html#mountsettings
This change forces Icecast to UTF-8 without having to configure it in
Icecast's configuration file.
2019-11-06 16:05:22 +01:00
Max Kellermann
d659c7df19
python/build/libs: update CURL to 7.66.0
2019-11-04 14:27:00 +01:00
Max Kellermann
f8403a1d29
python/build/libs: update FFmpeg to 4.2.1
2019-11-04 14:26:05 +01:00
Max Kellermann
ebb952c4ad
neighbor/meson.build: disable if -Ddatabase=false
...
Fixes yet another build failure (which however only affects the 0.22
branch).
Closes https://github.com/MusicPlayerDaemon/MPD/issues/666
2019-11-04 14:18:48 +01:00
Max Kellermann
bea3b954a5
meson.build, SongUpdate: disable db-specific archive code if -Ddatabase=false
...
Fixes another build failure.
2019-11-04 14:15:48 +01:00
Max Kellermann
129d8e89b9
lib/sqlite: disable if -Ddatabase=false
...
Fixes build failure in StickerCommands.cxx.
2019-11-04 14:10:03 +01:00