varlink: add helper for generating errno errors
This commit is contained in:
@@ -862,7 +862,7 @@ static int varlink_dispatch_method(Varlink *v) {
|
||||
|
||||
/* We got an error back from the callback. Propagate it to the client if the method call remains unanswered. */
|
||||
if (!FLAGS_SET(flags, VARLINK_METHOD_ONEWAY)) {
|
||||
r = varlink_errorb(v, VARLINK_ERROR_SYSTEM, JSON_BUILD_OBJECT(JSON_BUILD_PAIR("errno", JSON_BUILD_INTEGER(-r))));
|
||||
r = varlink_error_errno(v, r);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
@@ -1659,6 +1659,13 @@ int varlink_error_invalid_parameter(Varlink *v, JsonVariant *parameters) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
int varlink_error_errno(Varlink *v, int error) {
|
||||
return varlink_errorb(
|
||||
v,
|
||||
VARLINK_ERROR_SYSTEM,
|
||||
JSON_BUILD_OBJECT(JSON_BUILD_PAIR("errno", JSON_BUILD_INTEGER(abs(error)))));
|
||||
}
|
||||
|
||||
int varlink_notify(Varlink *v, JsonVariant *parameters) {
|
||||
_cleanup_(json_variant_unrefp) JsonVariant *m = NULL;
|
||||
int r;
|
||||
|
||||
@@ -100,6 +100,7 @@ int varlink_replyb(Varlink *v, ...);
|
||||
int varlink_error(Varlink *v, const char *error_id, JsonVariant *parameters);
|
||||
int varlink_errorb(Varlink *v, const char *error_id, ...);
|
||||
int varlink_error_invalid_parameter(Varlink *v, JsonVariant *parameters);
|
||||
int varlink_error_errno(Varlink *v, int error);
|
||||
|
||||
/* Enqueue a "more" reply */
|
||||
int varlink_notify(Varlink *v, JsonVariant *parameters);
|
||||
|
||||
Reference in New Issue
Block a user