Commit graph

2305 commits

Author SHA1 Message Date
Wim Taymans
044876b51c pulse-server: improve error message 2020-11-12 15:44:05 +01:00
Wim Taymans
4eb3cc37ea pulse-server: add socket activation 2020-11-12 15:35:35 +01:00
Wim Taymans
5bfc3b90ef pulse-server: improve error log 2020-11-12 15:13:33 +01:00
Wim Taymans
34cc13a60c pulse-server: set the right error when socket is busy 2020-11-12 14:54:58 +01:00
Wim Taymans
5ebb95a346 pulse-server: improve debug, add client name 2020-11-12 13:33:25 +01:00
Wim Taymans
593c183166 pulse-server: improve stale socket detection
Only declare stale when ECONNREFUSED and not socket activated.
2020-11-12 13:02:18 +01:00
Wim Taymans
6e2ab9973b pulse-server: alsa safely make native socket
Only make the native socket when it's not there or when it appears
dead when we can't seem to connect to it.

- When the socket is not found, we take it.
- When an existing pulseaudio is running we won't unlink and take
  over the socket because we can connect to it
- When a crashed pulseaudio leaves a stale socket, we fail to
  connect and then we unlink and take over.
2020-11-12 12:17:12 +01:00
Wim Taymans
c368768b93 pulse-server: append remote name to native socket
This way we don't interfere with the pulseaudio daemon in any way
and we can implement fallback to pulse-server in the pulseaudio
client library config file.
2020-11-12 11:01:57 +01:00
Wim Taymans
6c7a84a0ff pulse-server: rate limit the underrun warnings 2020-11-12 10:17:19 +01:00
Wim Taymans
218689ff9a manager: also make a Core global
So that we can checke the permissions for the metadata
2020-11-11 17:19:04 +01:00
Wim Taymans
239615f5ae pulse-server: improve some debug 2020-11-09 16:53:18 +01:00
Wim Taymans
cd3610367b pulse-server: free object info
Don't remove the listeners before destroying the proxy because
we clean up the info in the destroy event.
2020-11-09 16:52:25 +01:00
Wim Taymans
99fcc95d18 pulse-server: don't leak formats 2020-11-09 16:51:34 +01:00
Wim Taymans
a6c35d1df4 module-portal: don't leak dbus error 2020-11-09 16:50:47 +01:00
Wim Taymans
d4fc918737 module-adapter: don't remove the listener in destroy
Or else we won't receive the free event anymore and we leak the
adapter.
2020-11-09 16:49:49 +01:00
Wim Taymans
ecf10e0b1c pulse-server: remove useless allocation 2020-11-09 15:51:58 +01:00
Wim Taymans
29d6179328 spa-device: cleanup in the free signal
Cleanup and close the plugin in the free signal so that the object
has a chance to remove the event handlers from the object.
2020-11-09 15:36:36 +01:00
Wim Taymans
a0b2e5b498 pulse-server: improve stream cleanup
Make sure we finish processing of the pending messages before
destroying the stream.
2020-11-09 15:35:50 +01:00
Wim Taymans
f8186665d9 spa-node: remove unused factory_name 2020-11-09 15:35:12 +01:00
Greg V
2ae840bc12 access: only check for Flatpak on Linux 2020-11-09 11:14:20 +00:00
Greg V
c1cda26ce8 protocol-native: get pid/gid/uid on FreeBSD using LOCAL_PEERCRED 2020-11-09 11:14:20 +00:00
Greg V
fba8cd9f56 protocol-pulse: ifdef Linux-specific errnos and socket opts 2020-11-09 11:14:20 +00:00
Wim Taymans
bd57c1a457 pulse-server: improve under and overrun handling 2020-11-09 12:06:44 +01:00
Wim Taymans
8abb648ec3 pulse-server: Improve timing reporting
Use the same logic as pulseaudio to improve the timing reporting
and improve compatibility with vlc.
2020-11-09 11:13:06 +01:00
Wim Taymans
18c57efb39 pulse-server: take type from info 2020-11-09 09:42:53 +01:00
Wim Taymans
b6efcd90a7 pulse-server: improve message debug, add offset 2020-11-09 09:42:15 +01:00
Sergey Bugaev
28af82e6d9 meson: rename HAVE_SYSTEMD_DAEMON to HAVE_SYSTEMD
This variable describes whether we have systemd and libsystemd,
not just <systemd/sd-daemon.h>

While at it, sneak in a fix for the warning message:
"systemd should never ever be capitalized".

Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
2020-11-06 15:51:24 +00:00
Wim Taymans
1507f40eb0 pulse-server: keep on reading commands until we hit EAGAIN
Only log a warning for anything else than EAGAIN
2020-11-06 16:37:19 +01:00
Wim Taymans
24280928a9 pulse-server: improve debug 2020-11-06 16:30:05 +01:00
Wim Taymans
65289a2185 pulse-sever: increase socket priority 2020-11-06 16:13:05 +01:00
Wim Taymans
96599f74e7 pulse-server: use invalid id for unused connect_tag
Because 0 happens to be the first tag and can cause confusion.
2020-11-06 16:09:41 +01:00
Wim Taymans
a2549fc638 clean the hook lists
Make sure the hook lists are emptied so that the removed callbacks
are called. The callers should really remove the hook they installed
themselves but this is a last chance to fix things up.
2020-11-06 15:55:33 +01:00
Wim Taymans
1570e62635 remove hooks from objects
Remove the hooks we installed on objects in the destroy/free event
or before calling _destroy. This is not really needed but it is
a nice thing to do because it calls the hook removed callbacks.
2020-11-06 15:53:32 +01:00
Wim Taymans
6317bc4deb module-spa: remove the listeners correctly
In the module destroy, remove the module listener and in the
factory_destroy, the factory_listener.
2020-11-06 15:37:58 +01:00
Wim Taymans
42319e32be pulse-server: handle NULL registry 2020-11-06 15:35:44 +01:00
Georges Basile Stavracas Neto
a362889712 pulse-server: Implement module load and unload
Implement a minimal version of the LOAD_MODULE and UNLOAD_MODULE
stream commands. The only supported module for now is the null
sink.

Modules are stored on a per-client bases, so that when clients
are disconnected, the modules they loaded is removed too.

This is enough to allow GNOME Network Displays to register a sink.
2020-11-05 11:57:12 -03:00
Wim Taymans
2a5087a51e pulse-server: set client id 2020-11-05 10:46:19 +01:00
Wim Taymans
b472abe65b pulse-server: improve GET_SERVER_INFO
We don't need to bind to the core object again, we can just use the
events on the manager core.
We don't actually have info when the Core is added so don't try to
use it to get defaults for the client.
Use the manager core info in server info.
2020-11-05 10:36:13 +01:00
Wim Taymans
b8c7b36d3b protocol-native: do version check on HELLO
Always do the version check on HELLO because the connection could
have been moved from a v3 portal to a v0 client (like chrome)

Fixes #270
2020-11-04 16:13:53 +01:00
Wim Taymans
b659fa580a pulse-server: improve error reporting 2020-11-04 10:24:39 +01:00
Wim Taymans
4ea95abd90 rtkit: improve error message 2020-11-04 09:42:33 +01:00
Wim Taymans
12cefd2461 pulse-server: handle no_remix flag 2020-11-03 21:01:24 +01:00
Wim Taymans
8ca71060eb improve some debug 2020-11-03 18:04:42 +01:00
Wim Taymans
efafb41525 pulse-server: debug messages when connection debug enabled 2020-11-03 12:22:35 +01:00
Wim Taymans
bba24b9ff8 pulse-server: return length of TAG_ARBITRARY
So that we don't have to know the length beforehand but can still
check it.
2020-11-03 12:14:09 +01:00
Wim Taymans
bc46ead017 client: emit check access in global context
Drop the current client context to check permissions. This restores the
previous behaviour and fixes the permissions set by the portal module.
This fixes screen sharing again.

Fixes #362
2020-11-03 09:35:51 +01:00
Wim Taymans
b63ea11834 pulse-server: create runtime directory if needed
Check if the pulse directory exists and create it if not.

Fixes #356
2020-11-02 20:05:18 +01:00
Wim Taymans
a7d522c743 protocol: fix sign in error checks
Our errors are -errno
2020-11-02 16:46:13 +01:00
Wim Taymans
dd45a27d86 pulse-server: improve error message
See #356
2020-11-02 09:08:42 +01:00
Wim Taymans
94dbd4f9b8 warn about and fix some -Wpointer-sign warnings 2020-11-02 09:03:53 +01:00