Age | Commit message (Collapse) | Author | |
---|---|---|---|
2019-04-04 | event/SocketMonitor: don't cancel if OnSocketReady() returns false | Max Kellermann | |
Expect OnSocketReady() to cancel events. If it returns false, the SocketMonitor may be destructed already. This fixes a use-after-free bug in the "httpd" output plugin. | |||
2019-04-04 | event/{Fully,}BufferedSocket: add more API documentation | Max Kellermann | |
2019-03-20 | event/ServerSocket: runtime error if abstract sockets are unavailable | Max Kellermann | |
2019-03-20 | event/ServerSocket: add HAVE_UN check to AddAbstract() | Max Kellermann | |
Closes https://github.com/MusicPlayerDaemon/MPD/issues/510 | |||
2019-03-20 | event/ServerSocket, doc, ...: refer to AF_LOCAL as "local socket" | Max Kellermann | |
.. and not "UNIX domain socket. Be consistent about the naming. | |||
2019-02-25 | event/ServerSocket, config/Net: abstract socket support | Max Kellermann | |
2019-02-05 | event/Loop: add flag `alive` | Max Kellermann | |
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(). | |||
2018-12-09 | Add boost_dep in subdir meson.build files | Jacob Vosmaer | |
2018-11-19 | check.h: remove obsolete header | Max Kellermann | |
Since we switched from autotools to Meson in commit 94592c14062d5afc9482d11baa401648082022c0, we don't need to include `config.h` early to properly enable large file support. Meson passes the required macros on the compiler command line instead of defining them in `config.h`. This means we can include `config.h` at any time, whenever we want to check its macros, and there are no ordering constraints. | |||
2018-11-14 | event/Thread: reduce the RTIO timer slack to 10us | Max Kellermann | |
MPD's default is 100ms, which is too long for the real-time I/O thread. The OutputThread has 100us, but the real-time I/O thread might have tighter deadlines. This change has currently no effect (I believe), because nobody uses timers on the RTIO thread. | |||
2018-11-11 | events/MultiSocketMonitor: add method ForEachResult() | Max Kellermann | |
2018-10-31 | *: copyright year 2018 | Max Kellermann | |
2018-10-30 | event/ServerSocket: allow mixing AddFD() with other Add*() methods | Max Kellermann | |
2018-10-30 | event/ServerSocket: add AddFD() overload with AllocatedSocketAddress&& | Max Kellermann | |
2018-10-30 | event/ServerSocket: make AddAddress() a template | Max Kellermann | |
2018-10-30 | event/ServerSocket: include cleanup | Max Kellermann | |
2018-10-30 | event/ServerSocket: use class IPv6Address | Max Kellermann | |
2018-10-30 | event/ServerSocket: make OneServerSocket an inner class | Max Kellermann | |
2018-10-30 | event/ServerSocket: make OnAccept() noexcept | Max Kellermann | |
2018-10-30 | event/ServerSocket: use C++11 initializer | Max Kellermann | |
2018-10-30 | event/ServerSocket: pass UniqueSocketDescriptor to AddFD() | Max Kellermann | |
2018-10-30 | event/ServerSocket: add `noexcept` | Max Kellermann | |
2018-10-14 | build with Meson instead of autotools | Max Kellermann | |
So long, autotools! This is my last MPD related project to migrate away from it. It has its strengths, but also very obvious weaknesses and weirdnesses. Today, many of its quirks are not needed anymore, and are cumbersome and slow. Now welcome our new Meson overlords! | |||
2018-08-22 | system/EPollFD: rename to EpollFD | Max Kellermann | |
2018-08-21 | net/Resolver: replace with more advanced implementation | Max Kellermann | |
The new implementation is copied from another project and is BSD-licensed. It is exception-safe and can parse IPv6 scope ids with interface names. | |||
2018-08-20 | Compiler.h: move to util/ | Max Kellermann | |
2018-08-14 | fixed setting unix socket permissions | 1848 | |
first call fchmod() to prevent TOCTTOU, then apply permissions using chmod() | |||
2018-08-09 | event/ServerSocket: fix get_remote_uid() call | Max Kellermann | |
This call was broken since commit 9a5bcc6db0c58459b63d25fede1945b7ebef67a8 because the `UniqueSocketDescriptor` had already been moved. | |||
2018-08-07 | Moved call to fchmod() on socket from OneServerSocket::Open() to ↵ | 1848 | |
socket_bind_listen() | |||
2018-08-07 | Use fchmod instead of chmod for unix sockets to prevent TOCTTOU | 1848 | |
2018-08-06 | event/SignalMonitor: make SignalMonitorFinish() noexcept | Max Kellermann | |
2018-08-06 | event/SignalMonitor: add `noexcept` | Max Kellermann | |
2018-08-06 | system/SignalFD: throw exception on error | Max Kellermann | |
2018-08-06 | system/Event{FD,Pipe}: throw exception on error | Max Kellermann | |
2018-07-15 | event/ServerSocket: add method IsEmpty() | Max Kellermann | |
2018-02-16 | output/alsa: use a new I/O thread with real-time scheduling | Max Kellermann | |
The normal I/O event thread can have a large latency, e.g. when libgnutls loads all TLS CA certificates for a https connect. This makes it unreliable for the ALSA I/O notifications, and causes ring buffer xruns. To avoid interfering with high latency events such as CURL's, we move the ALSA I/O events to a separate I/O thread which also obtains real-time scheduling (if possible). Closes #221 | |||
2018-01-29 | event/Thread: add "noexcept" | Max Kellermann | |
2018-01-29 | event/Call: invoke function directly if the EventLoop is dead | Max Kellermann | |
Works around a deadlock bug which happens when waiting for an EventLoop which isn't running anymore. | |||
2018-01-29 | event/Loop: add flag "dead" | Max Kellermann | |
2018-01-29 | event/Thread: remove unused method StopAsync() | Max Kellermann | |
2018-01-29 | event/Loop: move code to HandleTimers() | Max Kellermann | |
2018-01-29 | event/Loop: add "noexcept" | Max Kellermann | |
2018-01-29 | event/EPoll: use C++11 initializer | Max Kellermann | |
2018-01-29 | event/WinSelect: pass const reference to copy constructor | Max Kellermann | |
2018-01-29 | event/PollResult: use size_t for size and index | Max Kellermann | |
2018-01-17 | fs/AllocatedPath: make the nullptr_t constructor public | Max Kellermann | |
2017-12-22 | event/Loop: use std::atomic_bool for the "quit" variable | Max Kellermann | |
Fixes thread sanitizer warnings. | |||
2017-12-20 | event/Call: document exceptions | Max Kellermann | |
2017-12-20 | event/TimerEvent: add "noexcept" | Max Kellermann | |
2017-12-20 | event/FullyBufferedSocket: add "noexcept" | Max Kellermann | |