Commit graph

17 commits

Author SHA1 Message Date
Wim Taymans
661ff95748 pulser-server: use max_client settings instead of constant 2022-01-13 19:53:06 +01:00
Wim Taymans
982758ffed pulse-server: calculate missing bytes differently
Based on patch from Barnabás Pőcze <pobrn@protonmail.com>

Instead of trying to keep track of the missing bytes ourselves, use the
simple tlength - avail - requested formula to request more bytes from
the client.

Fixes #1981
2022-01-10 15:08:52 +01:00
Wim Taymans
222ef88704 pulse-server: request more data when seeking backwards
Immediately ask for more data when we seek backwards so that we don't
underrun in the next process cycle.

See #1981
2022-01-07 10:59:41 +01:00
Wim Taymans
22625fb658 pulse-server: support server config
Extend the server.address property so that you can also specify
an object per server. Add support for configuring some aspects of the
server such as max-clients and backlog.

Most importantly, the pipewire client.access can be configured per
server.

See #1960
2022-01-04 14:30:33 +01:00
Wim Taymans
c46113faa3 json: spa_json_get_string() writes up to len chars or fail 2022-01-04 10:42:32 +01:00
Barnabás Pőcze
1c3e45a584 pulse-server: add command access control
By default require that a client is authenticated and
has a manager to be allowed to run a command.

Specially:
 * AUTH requires nothing
 * SET_CLIENT_NAME and STAT only require authentication
2021-12-31 02:11:59 +01:00
Barnabás Pőcze
4678ea06a0 pulse-server: client: restructure message handling
Move all I/O event source modifications into client.c.
2021-12-26 19:37:41 +00:00
Barnabás Pőcze
d939fa5b1c pulse-server: server: use spa_strstartswith() 2021-12-26 19:37:41 +00:00
Barnabás Pőcze
6d2e6fde75 pulse-server: move parts of client creation
Move some portions of the client creation logic into client.c
so that it is easier to keep it in sync with `client_free()`, etc.
2021-12-26 19:37:41 +00:00
Wim Taymans
5d20e3028a pulse-server: avoid reading past the message size
We can't really get into this situation but it is a good idea to check
that we don't try to read past the message length.
2021-11-25 09:48:34 +01:00
Wim Taymans
af2e7b630a pulse-server: turn error into info
Receiving a message from an already removed stream should not result in
an error message.

See #1812
2021-11-16 12:33:23 +01:00
Peter Hutterer
52a96bb602 modules: add log topics to module-protocol-pulse
This ends up using a nested namespace: mod.protocol-pulse for the module
itself, mod.protocol-pulse.foo for the various submodules and
extensions.
2021-09-28 09:35:39 +02:00
Peter Hutterer
8bb0e340c7 protocol-pulse: fix two -Wformat-nonliteral warnings
For the stream group, we break into the three components we write out
and print those.

For the IPv6 address printing inside [], we can make this a condition on
the printf statement.
2021-09-07 08:57:28 +10:00
Julian Bouzas
b136bb8ca5 pipewire-pulse: delay create stream reply if the peer is not found
When the client adapter is configured in passthrough mode, the stream param
changed event in pipewire-pulse is emitted before the session manager creates
the link, and not after. Therfore, the peer can never be found when replying
create stream, and the pulseaudio application receives a stream error.

This patch delays the create stream reply until the link is added if the peer
cannot be found, fixing the above race conditon to allow passthrough mode to
work with pulseaudio applications.
2021-08-30 08:01:52 +00:00
Barnabás Pőcze
627ef37a77 pulse-server: use pid_t where appropriate
Instead of `int`, use the `pid_t` type to represent
process identifiers.
2021-07-25 15:17:08 +02:00
Wim Taymans
d88e8edd11 avoid shadowing arguments 2021-07-06 17:55:16 +02:00
Barnabás Pőcze
d366487116 pulse-server: split out server creation and socket handling
Part of !776.
2021-06-25 03:23:32 +02:00