summaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-12-24time/ISO8601: fix Windows build failureMax Kellermann
Caused by 2bc127bb4336d1de047cca57b07865ed1e53f967
2019-12-24Revert "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-24input/curl: remove unnecessary InvalidateSockets() callMax Kellermann
Like fe598e7d30d82794560df053623a16fee8d3fb9c
2019-12-24time/ISO8601: refactor ParseTimeOfDay() to parse one by oneMax 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-24time/ISO8601: move code to ParseTimeOfDay()Max Kellermann
2019-12-24util/Compiler.h: use `[[fallthrough]]` on clangMax 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-23util/Compiler.h: add gcc_fallthroughMax 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-23lib/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-23lib/curl/Global: remove lower bound on timeoutsMax Kellermann
This was a problem 9 years ago, and apparently, it has been fixed long ago.
2019-12-23lib/curl: drop support for CURL versions older than 7.32.0Max Kellermann
For simplicity, this commit removes a workaround for an old CURL bug.
2019-12-23event/Loop: remove bogus assertionMax Kellermann
Can fail if somebody calls Break().
2019-12-23storage/curl: move start call out of the constructorMax 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-22event/MultiSocketMonitor: add workaround for /dev/nullMax 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-22event/MultiSocketMonitor: remove unnecessary `friend` declarationMax Kellermann
2019-12-22event/MultiSocketMonitor: remove duplicate IdleMonitor::Schedule() callMax Kellermann
SetReady() does this already.
2019-12-22event/MultiSocketMonitor: un-inline AddSocket()Max Kellermann
2019-12-22event/Loop: round timeout up to avoid unnecessary wakeupsMax Kellermann
2019-12-20event/MultiSocketMonitor: use std::exchange()Max Kellermann
2019-12-18event/MultiSocketMonitor: AddSocket() returns boolMax Kellermann
2019-12-18event/SocketMonitor: Schedule() returns boolMax Kellermann
2019-12-16time/ISO8601: support omitting field separatorsMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/685
2019-12-16song/Filter: try ParseISO8601() firstMax 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-16time/ISO8601: support omitting minutesMax Kellermann
2019-12-16time/ISO8601: support omitting secondsMax Kellermann
2019-12-16time/ISO8601: support time zone offsetMax Kellermann
2019-12-16time/ISO8601: allow omitting the "Z" suffixMax Kellermann
And allow "Z" suffix after date.
2019-12-16time/ISO8601: allow omitting the time of dayMax Kellermann
2019-12-16time/ISO8601: ParseISO8601() returns precisionMax Kellermann
2019-12-16time/ISO8601: implement with strptime(), without ParseTimePoint()Max Kellermann
Prepare for adding more flexible parsing.
2019-12-16time/Convert: fallback TimeGm() implementationMax Kellermann
Move code from Parser.cxx.
2019-12-16time/Parser: use TimeGm()Max Kellermann
2019-12-16time/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-16time/Convert: include sys/time.h for struct timevalMax Kellermann
Closes https://github.com/MusicPlayerDaemon/MPD/issues/562
2019-12-16time/ISO8601: forward-declare StringBufferMax Kellermann
2019-12-16time/Convert: update copyrightMax Kellermann
2019-12-16time/Convert: mention exceptionsMax Kellermann
2019-12-16zeroconf/AvahiPoll: move TimevalToChrono() to time/Convert.cxxMax Kellermann
2019-12-16time/Convert: add `noexcept`Max Kellermann
2019-12-16time/Convert: add `pure` attributesMax Kellermann
2019-12-16util/Time*: move to time/Max Kellermann
2019-12-16decoder/mad: work around bogus -Wuninitialized in GCC 10Max Kellermann
2019-12-16pcm/Convert, ...: add missing include for std::runtime_errorMax Kellermann
2019-12-16lib/gcrypt/MD5: add missing include for uint8_tMax Kellermann
2019-12-16util/StringBuffer: use std::size_t instead of size_tMax Kellermann
2019-12-16lib/xiph: add missing meson dependencyJacob Vosmaer
2019-12-16input: add missing boost meson dependencyJacob Vosmaer
2019-12-04archive/zzip: improve error reportingMax 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-04system/Error: add FormatFileNotFound()Max Kellermann
2019-12-04util/PrintException, ...: update copyrightMax Kellermann
2019-12-04system/Error: move code to IsErrno()Max Kellermann