diff mbox series

audio/pw: Report more accurate error when connecting to PipeWire fails

Message ID 3fd20aa6948acdff0d17ca56db81f88df51dc960.1726643187.git.mprivozn@redhat.com (mailing list archive)
State New, archived
Headers show
Series audio/pw: Report more accurate error when connecting to PipeWire fails | expand

Commit Message

Michal Privoznik Sept. 18, 2024, 7:08 a.m. UTC
According to its man page [1], pw_context_connect() sets errno on
failure:

  Returns a Core on success or NULL with errno set on error.

It may be handy to see errno when figuring out why PipeWire
failed to connect. That leaves us with just one possible path to
reach 'fail_error' label which is then moved to that path and
also its error message is adjusted slightly.

1: https://docs.pipewire.org/group__pw__core.html#ga5994e3a54e4ec718094ca02a1234815b
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
---
 audio/pwaudio.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Markus Armbruster Sept. 18, 2024, 7:14 a.m. UTC | #1
Michal Privoznik <mprivozn@redhat.com> writes:

> According to its man page [1], pw_context_connect() sets errno on
> failure:
>
>   Returns a Core on success or NULL with errno set on error.
>
> It may be handy to see errno when figuring out why PipeWire
> failed to connect. That leaves us with just one possible path to
> reach 'fail_error' label which is then moved to that path and
> also its error message is adjusted slightly.
>
> 1: https://docs.pipewire.org/group__pw__core.html#ga5994e3a54e4ec718094ca02a1234815b
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
>
> Signed-off-by: Michal Privoznik <mprivozn@redhat.com>

Duplicate S-o-b.

> ---
>  audio/pwaudio.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/audio/pwaudio.c b/audio/pwaudio.c
> index 3b14e04fbb..988cd9108e 100644
> --- a/audio/pwaudio.c
> +++ b/audio/pwaudio.c
> @@ -769,13 +769,15 @@ qpw_audio_init(Audiodev *dev, Error **errp)
>      pw->core = pw_context_connect(pw->context, NULL, 0);
>      if (pw->core == NULL) {
>          pw_thread_loop_unlock(pw->thread_loop);
> -        goto fail_error;
> +        error_setg_errno(errp, errno, "Failed to connect to PipeWire instance");
> +        goto fail;
>      }
>  
>      if (pw_core_add_listener(pw->core, &pw->core_listener,
>                               &core_events, pw) < 0) {
>          pw_thread_loop_unlock(pw->thread_loop);
> -        goto fail_error;
> +        error_setg(errp, "Failed to add PipeWite listener");

Typo in PipeWire.

> +        goto fail;
>      }
>      if (wait_resync(pw) < 0) {
>          pw_thread_loop_unlock(pw->thread_loop);
> @@ -785,8 +787,6 @@ qpw_audio_init(Audiodev *dev, Error **errp)
>  
>      return g_steal_pointer(&pw);
>  
> -fail_error:
> -    error_setg(errp, "Failed to initialize PW context");
>  fail:
>      if (pw->thread_loop) {
>          pw_thread_loop_stop(pw->thread_loop);
diff mbox series

Patch

diff --git a/audio/pwaudio.c b/audio/pwaudio.c
index 3b14e04fbb..988cd9108e 100644
--- a/audio/pwaudio.c
+++ b/audio/pwaudio.c
@@ -769,13 +769,15 @@  qpw_audio_init(Audiodev *dev, Error **errp)
     pw->core = pw_context_connect(pw->context, NULL, 0);
     if (pw->core == NULL) {
         pw_thread_loop_unlock(pw->thread_loop);
-        goto fail_error;
+        error_setg_errno(errp, errno, "Failed to connect to PipeWire instance");
+        goto fail;
     }
 
     if (pw_core_add_listener(pw->core, &pw->core_listener,
                              &core_events, pw) < 0) {
         pw_thread_loop_unlock(pw->thread_loop);
-        goto fail_error;
+        error_setg(errp, "Failed to add PipeWite listener");
+        goto fail;
     }
     if (wait_resync(pw) < 0) {
         pw_thread_loop_unlock(pw->thread_loop);
@@ -785,8 +787,6 @@  qpw_audio_init(Audiodev *dev, Error **errp)
 
     return g_steal_pointer(&pw);
 
-fail_error:
-    error_setg(errp, "Failed to initialize PW context");
 fail:
     if (pw->thread_loop) {
         pw_thread_loop_stop(pw->thread_loop);