Max Kellermann
c9081a206a
client/New: fix assertion failure in Close()
...
Caused by a revert accident in commit
f2cdbeace6
Closes https://github.com/MusicPlayerDaemon/MPD/issues/631
2019-08-22 14:43:53 +02:00
Max Kellermann
f2cdbeace6
Revert "Client: eliminate SetExpired(), call Close() directly"
...
This reverts commit 58d7804d66
. It
caused a use-after-free bug when Client::OnSocketError() was called
due to a failed write, e.g. if the output buffer was full.
2019-08-22 09:52:19 +02:00
Max Kellermann
4f61cd0b93
client/Response: add constant MAX_BINARY_SIZE
...
Use the same chunk size for all binary commands.
2019-08-12 20:23:46 +02:00
Max Kellermann
989790e7f1
client/Response: add method WriteBinary()
...
Move code from read_stream_art().
2019-08-12 14:17:35 +02:00
Max Kellermann
d663f81420
include cleanups (powered by iwyu)
2019-07-05 09:59:58 +02:00
Max Kellermann
a139279575
Copyright year 2019
2019-06-17 11:17:30 +02:00
Max Kellermann
0b4e7b3317
client/List: use using
instead of typedef
2019-05-29 21:36:27 +02:00
Max Kellermann
472e4bfd41
client/List: fold CloseAll() into destructor
2019-05-29 21:33:22 +02:00
Max Kellermann
d3d70a7eed
client/List: use auto
2019-05-29 21:31:43 +02:00
Max Kellermann
17dd334b82
client/ThreadBackgroundCommand: fix inverted check
2019-04-05 14:23:35 +02:00
Max Kellermann
9f1c23e217
client/BackgroundCommand: infrastructure for commands running in background
2019-04-05 11:18:15 +02:00
Max Kellermann
58d7804d66
Client: eliminate SetExpired(), call Close() directly
2019-04-04 10:37:38 +02:00
Max Kellermann
c1272c72b0
client/Process: reset the CommandListBuilder before processing it
...
Allows removing a CommandResult::CLOSE check.
2019-04-03 22:38:26 +02:00
Max Kellermann
7d1db5c19f
client/Process: refactor IsExpired() checks
2019-04-03 22:31:49 +02:00
Max Kellermann
2142d070a3
client/Process: refactor return
statements
2019-04-03 22:30:38 +02:00
Max Kellermann
9711cee26d
client/Process: update code comment
2019-04-03 22:30:18 +02:00
Max Kellermann
39baa4e364
client/Process: more strict syntax check
2019-04-03 22:29:43 +02:00
Max Kellermann
f339a53e3c
client/Process: move basic syntax check to the beginning of method
...
This catches lines within command lists as well.
2019-04-03 22:27:41 +02:00
Max Kellermann
d9117a272b
client/Response: use C++11 initializer
2019-04-03 21:53:20 +02:00
Max Kellermann
3f05b7d8b4
client/New: include cleanup
2019-04-03 21:41:52 +02:00
Max Kellermann
1d563700a4
client/File: include cleanup
2019-04-03 21:40:12 +02:00
Max Kellermann
def6b936c8
client/Response: add noexcept
2019-04-03 21:38:09 +02:00
Max Kellermann
3610f55479
client/Write: add noexcept
2019-04-03 21:37:38 +02:00
Max Kellermann
6db84852ae
client/Listener: add noexcept
2019-04-03 21:36:02 +02:00
Max Kellermann
41dc36ba92
client/List: add noexcept
2019-04-03 21:34:53 +02:00
Max Kellermann
fe32db17d7
client/Internal: rename to Config.hxx
2019-04-03 21:31:32 +02:00
Max Kellermann
772aa4f165
client/Internal: move CLIENT_MAX_* to class Client
2019-04-03 21:28:46 +02:00
Max Kellermann
38298e0cd8
client/Internal: move client_domain to Domain.hxx
2019-04-03 21:26:16 +02:00
Max Kellermann
1213d979f8
client/*: rename source files, remove "Client" prefix
2019-04-03 20:59:00 +02:00
Max Kellermann
a9cb12b745
Client: make almost all attributes private
2019-04-03 20:16:08 +02:00
Max Kellermann
380f73c112
client/Process: convert functions to Client methods
2019-04-03 20:04:59 +02:00
Max Kellermann
9f79d034b3
client/Process: add noexcept
2019-04-03 20:04:31 +02:00
Max Kellermann
4a745a399f
client: un-inline the destructor
2019-04-03 14:44:01 +02:00
Max Kellermann
c340485dd5
client: make GetEventLoop() public
2019-04-03 14:32:28 +02:00
Max Kellermann
22e6d95c4b
remove libwrap support
...
libwrap is an obscure artefact from a past long ago, when source IP
address meant something.
And its API is "interesting"; it requires the application to expose
two global variables `allow_severity` and `deny_severity`. This led
to bug #437 . I don't want to declare those variables; instead, I'd
like to remove libwrap support.
Closes #437
2018-12-28 14:16:02 +01:00
Max Kellermann
ce49d99c2f
check.h: remove obsolete header
...
Since we switched from autotools to Meson in commit
94592c1406
, 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-19 16:33:49 +01:00
Max Kellermann
f5c9071494
*: copyright year 2018
2018-10-31 17:54:59 +01:00
Max Kellermann
e3142312bb
player/Control: convert to class
2018-09-21 18:12:28 +02:00
Max Kellermann
ec54754e22
Compiler.h: move to util/
2018-08-20 16:19:17 +02:00
Max Kellermann
36db40b224
client/Global: use struct ConfigData
2018-07-17 23:07:50 +02:00
Max Kellermann
816603fd9a
config/Config*: rename files, drop "Config" prefix
2018-07-16 19:50:07 +02:00
Max Kellermann
9c6b52ccee
Permission: add special permissions for local sockets
...
Closes #296
2018-07-15 22:27:35 +02:00
Max Kellermann
8aa2c57413
client: pass permission mask to constructor
...
Prepare for per-listener permissions.
2018-07-15 21:51:33 +02:00
Max Kellermann
1df5c5a76e
Listen: move class ClientListener to src/client/Listener.hxx
2018-01-29 23:48:16 +01:00
Max Kellermann
befd669075
Instance: rename Shutdown() to Break()
2018-01-29 23:31:41 +01:00
Max Kellermann
2dac3ef58e
client: eliminate client_printf()
2018-01-20 00:24:18 +01:00
Max Kellermann
86c7ab29f4
client/Idle: pass Response instead of Client to WriteIdleResponse()
2018-01-20 00:22:47 +01:00
Max Kellermann
db89e5ec28
client/Idle: move code to WriteIdleResponse()
2018-01-20 00:22:30 +01:00
Max Kellermann
d096f75fb8
client/Idle: apply idle_subscriptions mask once
2018-01-20 00:22:09 +01:00
Max Kellermann
854424a758
client/Idle: use std::exchange()
2018-01-20 00:21:26 +01:00