mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-16 08:56:45 -05:00
resource: allow NULL resource in error
And then log en error instead. We can remove some awkward patterns in modules.
This commit is contained in:
parent
8aea38e81a
commit
1a911a9ccd
7 changed files with 42 additions and 41 deletions
|
|
@ -243,21 +243,16 @@ static void *create_object(void *_data,
|
||||||
|
|
||||||
error_properties:
|
error_properties:
|
||||||
res = -EINVAL;
|
res = -EINVAL;
|
||||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, d->this);
|
pw_resource_errorf_id(resource, new_id, res, "usage: " FACTORY_USAGE);
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res, "usage: " FACTORY_USAGE);
|
|
||||||
goto error_cleanup;
|
goto error_cleanup;
|
||||||
error_errno:
|
error_errno:
|
||||||
res = -errno;
|
res = -errno;
|
||||||
pw_log_error("can't create node: %m");
|
pw_resource_errorf_id(resource, new_id, res, "can't create node: %s", spa_strerror(res));
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res, "can't create node: %s", spa_strerror(res));
|
|
||||||
goto error_cleanup;
|
goto error_cleanup;
|
||||||
error_usage:
|
error_usage:
|
||||||
res = -EINVAL;
|
res = -EINVAL;
|
||||||
pw_log_error("usage: "ADAPTER_USAGE);
|
pw_log_error("usage: "ADAPTER_USAGE);
|
||||||
if (resource)
|
pw_resource_errorf_id(resource, new_id, res, "usage: "ADAPTER_USAGE);
|
||||||
pw_resource_errorf_id(resource, new_id, res, "usage: "ADAPTER_USAGE);
|
|
||||||
goto error_cleanup;
|
goto error_cleanup;
|
||||||
error_cleanup:
|
error_cleanup:
|
||||||
pw_properties_free(properties);
|
pw_properties_free(properties);
|
||||||
|
|
|
||||||
|
|
@ -121,15 +121,11 @@ static void *create_object(void *_data,
|
||||||
return result;
|
return result;
|
||||||
|
|
||||||
error_resource:
|
error_resource:
|
||||||
pw_log_error("can't create resource: %s", spa_strerror(res));
|
pw_resource_errorf_id(resource, new_id, res,
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"can't create resource: %s", spa_strerror(res));
|
"can't create resource: %s", spa_strerror(res));
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
error_node:
|
error_node:
|
||||||
pw_log_error("can't create metadata: %s", spa_strerror(res));
|
pw_resource_errorf_id(resource, new_id, res,
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"can't create metadata: %s", spa_strerror(res));
|
"can't create metadata: %s", spa_strerror(res));
|
||||||
goto error_exit_free;
|
goto error_exit_free;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -264,8 +264,7 @@ done:
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
error:
|
error:
|
||||||
if (client->core_resource)
|
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
||||||
pw_resource_errorf(client->core_resource, res, "client error %d (%s)",
|
|
||||||
res, spa_strerror(res));
|
res, spa_strerror(res));
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -165,15 +165,10 @@ static void *create_object(void *_data,
|
||||||
|
|
||||||
error_properties:
|
error_properties:
|
||||||
res = -EINVAL;
|
res = -EINVAL;
|
||||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, data->this);
|
pw_resource_errorf_id(resource, new_id, res, "usage: "FACTORY_USAGE);
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"usage: "FACTORY_USAGE);
|
|
||||||
goto error_exit_cleanup;
|
goto error_exit_cleanup;
|
||||||
error_device:
|
error_device:
|
||||||
pw_log_debug("can't create device %s: %s", factory_name, spa_strerror(res));
|
pw_resource_errorf_id(resource, new_id, res,
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"can't create device %s: %s", factory_name,
|
"can't create device %s: %s", factory_name,
|
||||||
spa_strerror(res));
|
spa_strerror(res));
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
|
|
|
||||||
|
|
@ -163,16 +163,11 @@ static void *create_object(void *_data,
|
||||||
|
|
||||||
error_properties:
|
error_properties:
|
||||||
res = -EINVAL;
|
res = -EINVAL;
|
||||||
pw_log_error("factory %p: usage: " FACTORY_USAGE, data->this);
|
pw_resource_errorf_id(resource, new_id, res, "usage: "FACTORY_USAGE);
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"usage: "FACTORY_USAGE);
|
|
||||||
goto error_exit_cleanup;
|
goto error_exit_cleanup;
|
||||||
error_create_node:
|
error_create_node:
|
||||||
res = -errno;
|
res = -errno;
|
||||||
pw_log_error("can't create node: %m");
|
pw_resource_errorf_id(resource, new_id, res,
|
||||||
if (resource)
|
|
||||||
pw_resource_errorf_id(resource, new_id, res,
|
|
||||||
"can't create node: %s", spa_strerror(res));
|
"can't create node: %s", spa_strerror(res));
|
||||||
goto error_exit;
|
goto error_exit;
|
||||||
error_bind:
|
error_bind:
|
||||||
|
|
|
||||||
|
|
@ -360,7 +360,11 @@ pw_core_resource_errorv(struct pw_resource *resource, uint32_t id, int seq,
|
||||||
buffer[1023] = '\0';
|
buffer[1023] = '\0';
|
||||||
pw_log_debug("resource %p: id:%d seq:%d res:%d (%s) msg:\"%s\"",
|
pw_log_debug("resource %p: id:%d seq:%d res:%d (%s) msg:\"%s\"",
|
||||||
resource, id, seq, res, spa_strerror(res), buffer);
|
resource, id, seq, res, spa_strerror(res), buffer);
|
||||||
pw_core_resource_error(resource, id, seq, res, buffer);
|
if (resource)
|
||||||
|
pw_core_resource_error(resource, id, seq, res, buffer);
|
||||||
|
else
|
||||||
|
pw_log_error("id:%d seq:%d res:%d (%s) msg:\"%s\"",
|
||||||
|
id, seq, res, spa_strerror(res), buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline SPA_PRINTF_FUNC(5,6) void
|
static inline SPA_PRINTF_FUNC(5,6) void
|
||||||
|
|
|
||||||
|
|
@ -228,10 +228,16 @@ uint32_t pw_resource_get_bound_id(struct pw_resource *resource)
|
||||||
static void SPA_PRINTF_FUNC(4, 0)
|
static void SPA_PRINTF_FUNC(4, 0)
|
||||||
pw_resource_errorv_id(struct pw_resource *resource, uint32_t id, int res, const char *error, va_list ap)
|
pw_resource_errorv_id(struct pw_resource *resource, uint32_t id, int res, const char *error, va_list ap)
|
||||||
{
|
{
|
||||||
struct pw_impl_client *client = resource->client;
|
struct pw_impl_client *client;
|
||||||
if (client->core_resource != NULL)
|
|
||||||
pw_core_resource_errorv(client->core_resource,
|
if (resource) {
|
||||||
id, client->recv_seq, res, error, ap);
|
client = resource->client;
|
||||||
|
if (client->core_resource != NULL)
|
||||||
|
pw_core_resource_errorv(client->core_resource,
|
||||||
|
id, client->recv_seq, res, error, ap);
|
||||||
|
} else {
|
||||||
|
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SPA_EXPORT
|
SPA_EXPORT
|
||||||
|
|
@ -239,7 +245,10 @@ void pw_resource_errorf(struct pw_resource *resource, int res, const char *error
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, error);
|
va_start(ap, error);
|
||||||
pw_resource_errorv_id(resource, resource->id, res, error, ap);
|
if (resource)
|
||||||
|
pw_resource_errorv_id(resource, resource->id, res, error, ap);
|
||||||
|
else
|
||||||
|
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -248,17 +257,25 @@ void pw_resource_errorf_id(struct pw_resource *resource, uint32_t id, int res, c
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
va_start(ap, error);
|
va_start(ap, error);
|
||||||
pw_resource_errorv_id(resource, id, res, error, ap);
|
if (resource)
|
||||||
|
pw_resource_errorv_id(resource, id, res, error, ap);
|
||||||
|
else
|
||||||
|
pw_logtv(SPA_LOG_LEVEL_ERROR, PW_LOG_TOPIC_DEFAULT, error, ap);
|
||||||
va_end(ap);
|
va_end(ap);
|
||||||
}
|
}
|
||||||
|
|
||||||
SPA_EXPORT
|
SPA_EXPORT
|
||||||
void pw_resource_error(struct pw_resource *resource, int res, const char *error)
|
void pw_resource_error(struct pw_resource *resource, int res, const char *error)
|
||||||
{
|
{
|
||||||
struct pw_impl_client *client = resource->client;
|
struct pw_impl_client *client;
|
||||||
if (client->core_resource != NULL)
|
if (resource) {
|
||||||
pw_core_resource_error(client->core_resource,
|
client = resource->client;
|
||||||
resource->id, client->recv_seq, res, error);
|
if (client->core_resource != NULL)
|
||||||
|
pw_core_resource_error(client->core_resource,
|
||||||
|
resource->id, client->recv_seq, res, error);
|
||||||
|
} else {
|
||||||
|
pw_log_error("%s: %s", error, spa_strerror(res));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SPA_EXPORT
|
SPA_EXPORT
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue