aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)AuthorFilesLines
2021-07-28lib: avoid static buffers, use alloca() moreGeorge Kiagiadakis3-6/+11
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28lib: remove dependency on spa_pod and spa in generalGeorge Kiagiadakis8-130/+287
Replace spa_pod with a custom icipc_data structure, which is based on spa_pod and it's fully compatible with it Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28style: convert code to systemd coding styleGeorge Kiagiadakis13-1259/+1179
https://systemd.io/CODING_STYLE/ Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28icipc: make everything build again after splitting it out of wireplumberGeorge Kiagiadakis1-6/+1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: sender: disconnect and clear all pending tasks if connection was lostJulian Bouzas1-8/+34
If we don't remove the socket from epoll when the connection is lost, we risk having the lost callback triggered more than once by epoll, creating race condition in the unit test because more than 1 event happened. The epoll thread and socket will be re-created again when re-connecting. Note that we cannot destroy the epoll thread before triggering the lost connection callback because we are running the callback in the epoll thread, which is why removing the socket from epoll is the only way to make sure the lost connection callback is only triggered once. Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: receiver: also emit sender disconnected when failed to readJulian Bouzas1-6/+3
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: protocol: make sure buffer is initialized to 0 before building ↵Julian Bouzas1-0/+7
reply/request Fixes valgrind errors Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: change epoll thread func type name to be more consistentJulian Bouzas2-9/+9
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28lib: fix some issues found by coverityGeorge Kiagiadakis1-2/+5
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: place sockets in the same runtime directory as pipewireGeorge Kiagiadakis4-10/+55
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: remove socket files after shutdown of the serverGeorge Kiagiadakis1-0/+1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28meson: generate and install pkg-config file for wpipcGeorge Kiagiadakis1-0/+4
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28meson: find threads_dep early and also use it in the wpipc-clientGeorge Kiagiadakis1-1/+1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28wpipc: use proper api & so versionsGeorge Kiagiadakis1-2/+7
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28meson: replace join_paths() with operator /George Kiagiadakis1-1/+1
Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28meson: make wpipc optional and disabled by defaultGeorge Kiagiadakis1-0/+5
This is only intended to be used with specific embedded applications. There is no good reason to use it on a standard desktop environment. Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>
2021-07-28lib: add wpipc libraryJulian Bouzas15-0/+1854
Simple library that uses sockets for inter-process communication. It provides an API to create server and client objects. Users can add custom handlers in the server, and clients can send requests for those custom handlers. Signed-off-by: George Kiagiadakis <george.kiagiadakis@collabora.com>