sd-varlink: introduce sd_varlink_get_current_method()
This commit is contained in:
@@ -1065,6 +1065,7 @@ global:
|
||||
sd_device_enumerator_add_all_parents;
|
||||
sd_json_variant_type_from_string;
|
||||
sd_json_variant_type_to_string;
|
||||
sd_varlink_get_current_method;
|
||||
sd_varlink_get_input_fd;
|
||||
sd_varlink_get_output_fd;
|
||||
sd_varlink_reset_fds;
|
||||
|
||||
@@ -1542,6 +1542,25 @@ _public_ int sd_varlink_dispatch_again(sd_varlink *v) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
_public_ int sd_varlink_get_current_method(sd_varlink *v, const char **ret) {
|
||||
assert_return(v, -EINVAL);
|
||||
|
||||
if (!v->current)
|
||||
return -ENODATA;
|
||||
|
||||
sd_json_variant *p = sd_json_variant_by_key(v->current, "method");
|
||||
if (!p)
|
||||
return -ENODATA;
|
||||
|
||||
const char *s = sd_json_variant_string(p);
|
||||
if (!s)
|
||||
return -ENODATA;
|
||||
|
||||
if (ret)
|
||||
*ret = s;
|
||||
return 0;
|
||||
}
|
||||
|
||||
_public_ int sd_varlink_get_current_parameters(sd_varlink *v, sd_json_variant **ret) {
|
||||
sd_json_variant *p;
|
||||
|
||||
|
||||
@@ -178,6 +178,7 @@ int sd_varlink_notifyb(sd_varlink *v, ...);
|
||||
int sd_varlink_dispatch_again(sd_varlink *v);
|
||||
|
||||
/* Get the currently processed incoming message */
|
||||
int sd_varlink_get_current_method(sd_varlink *v, const char **ret);
|
||||
int sd_varlink_get_current_parameters(sd_varlink *v, sd_json_variant **ret);
|
||||
|
||||
/* Parsing incoming data via json_dispatch() and generate a nice error on parse errors */
|
||||
|
||||
Reference in New Issue
Block a user