Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-12-24 | time/ISO8601: fix Windows build failure | Max Kellermann | |
Caused by 2bc127bb4336d1de047cca57b07865ed1e53f967 | |||
2019-12-24 | Revert "lib/curl/Global: remove lower bound on timeouts" | Max Kellermann | |
This reverts commit 4475b8ca04b2798519d0f6eb68913c55cf3d1846. Further testing revealed that the threaded resolver still uses a timeout of 0ms. This revert however lowers the bound to a minimum of 1ms instead of 10ms. | |||
2019-12-24 | input/curl: remove unnecessary InvalidateSockets() call | Max Kellermann | |
Like fe598e7d30d82794560df053623a16fee8d3fb9c | |||
2019-12-24 | time/ISO8601: refactor ParseTimeOfDay() to parse one by one | Max Kellermann | |
This prepares the migration away from strptime() for Windows portability. But the real reason I'm doing this is that strptime() on Apple is buggy: strptime("14", "%H%M%S") (without separating colons) succeeds even though only the hour has been parsed. This fixes recent Travis failures in the ParseISO8601() unit test. | |||
2019-12-24 | time/ISO8601: move code to ParseTimeOfDay() | Max Kellermann | |
2019-12-24 | util/Compiler.h: use `[[fallthrough]]` on clang | Max Kellermann | |
Older clang versions don't support the GCC __attribute__ syntax. For those, don't use anything at all, and new clang versions shall use the standard syntax. | |||
2019-12-23 | util/Compiler.h: add gcc_fallthrough | Max Kellermann | |
Works around build failures with ccache which may feed processed code to GCC, which doesn't have the "fall through" code comments. | |||
2019-12-23 | lib/curl/Global: remove InvalidateSockets() call from Remove() | Max Kellermann | |
curl_multi_remove_handle() calls our socket function, and there's no need to call curl_multi_socket_action(). | |||
2019-12-23 | lib/curl/Global: remove lower bound on timeouts | Max Kellermann | |
This was a problem 9 years ago, and apparently, it has been fixed long ago. | |||
2019-12-23 | lib/curl: drop support for CURL versions older than 7.32.0 | Max Kellermann | |
For simplicity, this commit removes a workaround for an old CURL bug. | |||
2019-12-23 | event/Loop: remove bogus assertion | Max Kellermann | |
Can fail if somebody calls Break(). | |||
2019-12-23 | storage/curl: move start call out of the constructor | Max Kellermann | |
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-22 | event/MultiSocketMonitor: add workaround for /dev/null | Max Kellermann | |
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 | event/MultiSocketMonitor: remove unnecessary `friend` declaration | Max Kellermann | |
2019-12-22 | event/MultiSocketMonitor: remove duplicate IdleMonitor::Schedule() call | Max Kellermann | |
SetReady() does this already. | |||
2019-12-22 | event/MultiSocketMonitor: un-inline AddSocket() | Max Kellermann | |
2019-12-22 | event/Loop: round timeout up to avoid unnecessary wakeups | Max Kellermann | |
2019-12-20 | event/MultiSocketMonitor: use std::exchange() | Max Kellermann | |
2019-12-18 | event/MultiSocketMonitor: AddSocket() returns bool | Max Kellermann | |
2019-12-18 | event/SocketMonitor: Schedule() returns bool | Max Kellermann | |
2019-12-16 | time/ISO8601: support omitting field separators | Max Kellermann | |
Closes https://github.com/MusicPlayerDaemon/MPD/issues/685 | |||
2019-12-16 | song/Filter: try ParseISO8601() first | Max Kellermann | |
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 | time/ISO8601: support omitting minutes | Max Kellermann | |
2019-12-16 | time/ISO8601: support omitting seconds | Max Kellermann | |
2019-12-16 | time/ISO8601: support time zone offset | Max Kellermann | |
2019-12-16 | time/ISO8601: allow omitting the "Z" suffix | Max Kellermann | |
And allow "Z" suffix after date. | |||
2019-12-16 | time/ISO8601: allow omitting the time of day | Max Kellermann | |
2019-12-16 | time/ISO8601: ParseISO8601() returns precision | Max Kellermann | |
2019-12-16 | time/ISO8601: implement with strptime(), without ParseTimePoint() | Max Kellermann | |
Prepare for adding more flexible parsing. | |||
2019-12-16 | time/Convert: fallback TimeGm() implementation | Max Kellermann | |
Move code from Parser.cxx. | |||
2019-12-16 | time/Parser: use TimeGm() | Max Kellermann | |
2019-12-16 | time/Parser: explicitly initialize struct tm before strptime() | Max Kellermann | |
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 | time/Convert: include sys/time.h for struct timeval | Max Kellermann | |
Closes https://github.com/MusicPlayerDaemon/MPD/issues/562 | |||
2019-12-16 | time/ISO8601: forward-declare StringBuffer | Max Kellermann | |
2019-12-16 | time/Convert: update copyright | Max Kellermann | |
2019-12-16 | time/Convert: mention exceptions | Max Kellermann | |
2019-12-16 | zeroconf/AvahiPoll: move TimevalToChrono() to time/Convert.cxx | Max Kellermann | |
2019-12-16 | time/Convert: add `noexcept` | Max Kellermann | |
2019-12-16 | time/Convert: add `pure` attributes | Max Kellermann | |
2019-12-16 | util/Time*: move to time/ | Max Kellermann | |
2019-12-16 | decoder/mad: work around bogus -Wuninitialized in GCC 10 | Max Kellermann | |
2019-12-16 | pcm/Convert, ...: add missing include for std::runtime_error | Max Kellermann | |
2019-12-16 | lib/gcrypt/MD5: add missing include for uint8_t | Max Kellermann | |
2019-12-16 | util/StringBuffer: use std::size_t instead of size_t | Max Kellermann | |
2019-12-16 | lib/xiph: add missing meson dependency | Jacob Vosmaer | |
2019-12-16 | input: add missing boost meson dependency | Jacob Vosmaer | |
2019-12-04 | archive/zzip: improve error reporting | Max Kellermann | |
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 | system/Error: add FormatFileNotFound() | Max Kellermann | |
2019-12-04 | util/PrintException, ...: update copyright | Max Kellermann | |
2019-12-04 | system/Error: move code to IsErrno() | Max Kellermann | |